operator.itemgetter — извлечение полей из объектов и коллекцийПозволяет удобно и быстро получать элементы по индексам или ключам, особенно полезно в сочетании с функциями сортировки и группировки.
from operator import itemgetter
data = [("Алиса", 25), ("Боб", 30), ("Чарли", 20)]
# Сортируем по возрасту (второй элемент кортежа)
sorted_data = sorted(data, key=itemgetter(1))
print(sorted_data) # [('Чарли', 20), ('Алиса', 25), ('Боб', 30)]
itemgetter(n) возвращает функцию, извлекающую n-й элемент.sorted(), map(), groupby() и др.Please open Telegram to view this post
VIEW IN TELEGRAM
🏆8👍5
Рассказываем, как метод «Пяти почему» помог детям не бояться ошибок в коде и даже кайфовать от их анализа. Фрустрация — прочь, осознанность — в продакшн.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1
requests — мощная и простая в использовании библиотека для выполнения HTTP-запросов. Часто применяется для получения данных из API в формате JSON.pip install requests
import requests
url = "https://api.github.com/users/octocat"
response = requests.get(url)
# Получаем JSON-ответ
data = response.json()
print(data["login"]) # octocat
1.
requests.get(url) делает GET-запрос к API.2.
.json() автоматически преобразует JSON-ответ в словарь.3. Можно обращаться к данным как к обычному Python-объекту
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👏4😐3
Что происходит при использовании mutable объектов как значения по умолчанию в аргументах функции?
Пример
def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list
print(append_to_list(1)) # ➔ [1]
print(append_to_list(2)) # ➔ [1, 2]
print(append_to_list(3)) # ➔ [1, 2, 3]
Ответ
В Python значения по умолчанию вычисляются один раз при определении функции. Если в качестве значения по умолчанию используется изменяемый объект (например, список), он сохраняется между вызовами функции.
В примере выше список my_list создаётся один раз и затем повторно используется при каждом вызове append_to_list(), что приводит к накапливанию значений.✅ Правильный способ избежать этого:
def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list❗️ Никогда не используйте изменяемые объекты (list, dict, set...) как значения по умолчанию, если не уверены, что именно этого поведения хотите.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥6❤2⚡1
Пошаговый гайд по установке драйверов NVIDIA (включая 50xx серию) и настройке Container Toolkit на Ubuntu и Debian-подобных. Быстро, по делу, без шаманства.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4
loguru — продвинутая библиотека для логирования, которая делает работу с логами проще, мощнее и чище, чем стандартный logging. Позволяет писать логи в пару строк и легко настраивать вывод.
from loguru import logger
logger.debug("Это отладочное сообщение")
logger.info("Информация о процессе")
logger.warning("Предупреждение!")
logger.error("Произошла ошибка")
# Лог в файл с автоматической ротацией
logger.add("debug.log", rotation="1 MB")
pip install loguru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Python Weekly — это curated-дайджест, выходящий каждую неделю. В нём собраны свежие статьи, туториалы, релизы библиотек, вакансии и конференции, связанные с Python.
Примечательно, что все материалы отбираются вручную: без шумного контента, только качественные ссылки. Отлично подходит, чтобы быть в курсе последних трендов и узнавать о новых полезных инструментах.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
В статье сравниваю языки программирования по синтаксису, гибкости и боли. Ищу, где творчество помогает, а где мешает команде писать один код, а не десять несовместимых.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
threading.Timer — запуск кода с задержкойПозволяет выполнить функцию через заданный промежуток времени в отдельном потоке. Полезно для отложенных операций, напоминаний, автоматических задач.
import threading
def say_hello():
print("Привет через 5 секунд!")
# Запускаем функцию через 5 секунд
timer = threading.Timer(5.0, say_hello)
timer.start()
print("Ожидаем...")
threading.Timer(delay, function) создаёт таймер с задержкой delay в секундах..start() запускает таймер в фоновом потоке.Please open Telegram to view this post
VIEW IN TELEGRAM
⚡7❤1
openpyxl — мощная библиотека для чтения и записи Excel-файлов (.xlsx) на Python. Подходит для автоматизации отчётов, обработки табличных данных и создания аналитических инструментов.pip install openpyxl
from openpyxl import load_workbook
# Загружаем существующий файл
wb = load_workbook("sales.xlsx")
ws = wb["Продажи"]
# Читаем строки
for row in ws.iter_rows(values_only=True):
print(row)
1.
Workbook() создаёт новый Excel-файл, load_workbook() — загружает существующий.2.
ws.append() добавляет строки, ws.iter_rows() перебирает ячейки.3.
wb.save() сохраняет измененияПолезно для бухгалтерии, аналитики, экспорта отчётов из Python-скриптов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤6
Симуляция ДНК-процессов в коде: ПЦР, сдвиги, мутации и лигирование — всё вручную, на Python и без Biopython. Вопрос один — можно ли собрать лабораторию из строк.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
В чём разница между
@staticmethod и @classmethod в Python?Пример
class MyClass:
@staticmethod
def static_method():
return "Просто метод"
@classmethod
def class_method(cls):
return f"Это метод класса {cls.__name__}"
print(MyClass.static_method()) # ➔ Просто метод
print(MyClass.class_method()) # ➔ Это метод класса MyClass
Ответ
@staticmethod — обычная функция, встроенная в класс. Она не получает доступ ни к экземпляру (self), ни к самому классу (cls). Используется, когда метод логически связан с классом, но не зависит от него. @classmethod — получает в качестве первого аргумента сам класс (cls), а не экземпляр. Используется, когда метод должен знать о самом классе или создавать экземпляры (фабричные методы). ✅ Часто @classmethod применяют для создания альтернативных конструкторов или настройки поведения, зависящего от самого класса. ❗️ Если метод не использует ни self, ни cls — делайте его @staticmethod . Если работает с самим классом, но не с экземплярами — @classmethod .
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3
boltons — это набор тщательно отобранных утилит для Python, которые расширяют стандартную библиотеку. Полезна, когда хочется писать чище и лаконичнее, не изобретая велосипед.iterutils — мощные функции для работы с итераторами.dictutils — расширенные словари, включая OrderedMultiDict.fileutils, timeutils, urlutils — работа с файлами, временем и URL.from boltons.iterutils import flatten
nested = [1, [2, [3, 4], 5], 6]
flat = list(flatten(nested))
print(flat) # ➔ [1, 2, 3, 4, 5, 6]
pip install boltons
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥1
Проведен полный разбор текстов из сообщества «Осознанная меркантильность»: частотный анализ, темы, тональность, граф смыслов. Есть код. Есть инсайты. Волки действительно воют.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Этот сайт — не просто список синтаксиса, а настоящая энциклопедия приёмов Python: от базовых конструкций до генераторов, itertools, сетевого программирования и асинхронности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4❤3