
- Главная
- Каталог
- Интернет технологии
- PythonTalk
PythonTalk
Авторский канал по Python, Data Science и смежным IT-темам.
Размещаю только полезные релевантные посты, маркировка обязательна.
Статистика канала
translate_html умеет переводить контент, не ломая структуру тегов.
requests, httpx, niquests и даже cloudscraper. Если один метод блокируют по фингерпринту, можно переключиться на другой прямо в аргументах.
exejs) для генерации подписей запросов. Да, для этого в системе должен быть Node.js, но это малая плата за халяву.
import translators as ts
text = "Python is a language for rebels."
# Используем движок Alibaba
print(ts.translate_text(text, translator='alibaba', to_language='ru'))
# Вывод: Python - это язык для повстанцев.
# Или DeepL (если IP не в бане)
print(ts.translate_text(text, translator='deepl', to_language='ru')){}
preaccelerate).
API веб-интерфейсов могут меняться без предупреждения, и придется ждать обновления пакета.
Но для дата-аналитики, сбора датасетов, ботов или личных тулзов — хороший инструмент, который сэкономит кучу денег.
#годный_опенсорсO(n) по времени и O(1) по памяти:
def move_zeroes(nums: list[int]) -> None:
insert_pos = 0
for i in range(len(nums)):
if nums[i] != 0:
# Свапаем ненулевой элемент с "левым" нулем
nums[insert_pos], nums[i] = nums[i], nums[insert_pos]
insert_pos += 1{}
Никаких аллокаций. Никаких pop() из середины списка. Проходим по массиву ровно один раз. Переменная insert_pos всегда указывает на первый доступный ноль. Как только находим число отличное от нуля — просто меняем их местами благодаря встроенному механизму распаковки кортежей в Python.
nums.sort(key=bool, reverse=True){}
Как это работает? bool(0) дает False, остальные числа — True. Встроенная сортировка Timsort в Python стабильна — она строго сохраняет исходный порядок равных элементов. Все True (числа) съедутся влево, сохраняя свой порядок, а все False (нули) улетят вправо.
Да, формально тут сложность O(n log n), что алгоритмически хуже двух указателей. Но из-за того, что Timsort написан на зубодробительном C, на реальных списках небольшого объема этот код физически порвет циклы на чистом Python по скорости выполнения.
#алгособесTab допишет всё сам?
Итого получается пока так: нейронка работает как турбо-печатная машинка, но потом техлиды и ревьюеры плачут кровью, разгребая результаты этой «продуктивности».
Input: [1, 0, 1, 2, 0, 1, 3]
Output: [1, 1, 2, 1, 3, 0, 0]{}
Сделать можно десятком способов, но какой оптимальный и лаконичный? Ваши варианты в комментах
with open("t") as f:print(sum([sum([float(m) for m in "".join(filter(lambda x:x.isnumeric() or x.isspace() or x==".",l)).split()]) for l in f.readlines()])){}
🧐 Что здесь происходит?
Автор этого «шедевра» поставил себе задачу: извлечь все числа из текстового файла и просуммировать их.
Почему это вызывает физическую боль?
f.readlines() вываливает весь файл в RAM. Если файл на 10 Гб — ваш сервер скажет «пока» быстрее, чем вы дочитаете этот пост.
"".join(filter(...)) — это самый медленный способ обработки строк в Python. Мы тут программируем или бисер перебираем?
: и вокруг операторов — это не экономия места, это неуважение к окружающим.
Итог: Мы получили код, который работает медленно, жрет память и абсолютно нечитаем.
import re
def total_sum_from_file(file_path: str) -> float:
total = 0.0
# Используем контекстный менеджер и итератор по строкам
with open(file_path, 'r', encoding='utf-8') as f:
for line in f:
# Ищем все, что похоже на число (целое или с точкой)
numbers = re.findall(r"[-+]?\d*\.\d+|\d+", line)
total += sum(map(float, numbers))
return total
print(total_sum_from_file("t.txt")){}
Почему так лучше:
1. Читаемость: Даже джун поймет, что здесь происходит, за 5 секунд.
2. Память: Мы читаем файл построчно. Если файл весит 10 Гб, этот код не упадет.
3. Скорость: re.findall на уровне C работает быстрее, чем ваш посимвольный фильтр на Python.
#код_курильщикаОтзывы канала
всего 12 отзывов
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
PythonTalk — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 5.3K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 24.8, количество отзывов – 12, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 4321.67 ₽, а за 85 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий