"10 Умных Хитростей Python: Библиотеки и Лайфхаки

10 Умных Хитростей Python: Библиотеки и Лайфхаки
Привет, Python-энтузиасты! 🐍 Сегодня мы поговорим о некоторых хитростях, которые сделают вашу жизнь легче и, возможно, даже веселее (если вы не забудете добавить "import this"). Давайте погрузимся в мир библиотек и лайфхаков, которые помогут вам не только писать код, но и не потерять рассудок!
1. Используйте enumerate(), чтобы избежать "index out of range"
Зачем мучиться с обычным for и вручную отслеживать индекс, когда enumerate() может сделать это за вас?
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
Потеряли счёт? Теперь это не ваша проблема!
2. zip() — для тех, кто не любит одиночество
Собрать два списка в один словарь? Легко!
keys = ['name', 'age', 'city']
values = ['Alice', 30, 'Wonderland']
result = dict(zip(keys, values))
Пожалуйста, не говорите, что вы всё ещё используете циклы для этого!
3. defaultdict — когда вам нужно больше, чем просто словарь
Если вам надоело проверять, существует ли ключ в словаре, используйте defaultdict из модуля collections!
from collections import defaultdict
d = defaultdict(int)
d['apples'] += 1
print(d) # defaultdict(<class 'int'>, {'apples': 1})
Теперь ваши ключи всегда будут счастливы!
4. with и контекстные менеджеры — ваш новый лучший друг
Забудьте о том, чтобы закрывать файлы вручную. С контекстными менеджерами это делается автоматически!
with open('file.txt') as f:
content = f.read()
Ваши файлы больше не будут страдать от "забыть закрыть"!
5. f-строки — форматирование с любовью
Скажем "прощай" старым способам форматирования строк!
name = "Bob"
age = 25
print(f"{name} is {age} years old.")
Форматирование, которое даже ваша бабушка поймёт!
6. itertools — когда вам нужно больше комбинаций
Если вам нужно сгенерировать все возможные комбинации, itertools — это то, что вам нужно!
import itertools
combinations = list(itertools.combinations(['A', 'B', 'C'], 2))
print(combinations) # [('A', 'B'), ('A', 'C'), ('B', 'C')]
Теперь у вас есть больше комбинаций, чем у вашей любимой игры!
7. lambda функции — для краткости и элегантности
Когда вам нужна функция, но вы не хотите писать целый def, используйте lambda!
square = lambda x: x ** 2
print(square(5)) # 25
Пока вы не забудете, что это не полноценная функция!
8. map() и filter() — когда вам лень писать циклы
Зачем писать циклы, когда можно использовать map() и filter()?
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
evens = list(filter(lambda x: x % 2 == 0, numbers))
Потратьте время на что-то более важное, например, на кофе!
9. set() — уникальность в каждом элементе
Если вам нужно уникальное множество элементов, используйте set().
my_list = [1, 2, 2, 3, 4, 4, 4]
unique = set(my_list)
print(unique) # {1, 2, 3, 4}
Теперь ваши дубликаты могут пойти на отдых!
10. functools.lru_cache — кэширование для ленивых
Если ваша функция выполняет много вычислений, используйте кэширование!

Upvoted! Thank you for supporting witness @jswit.