Привет, Python-энтузиасты! 🐍 Сегодня мы поговорим о некоторых хитростях, которые сделают вашу жизнь легче и, возможно, даже веселее (если вы не забудете добавить "import this"). Давайте погрузимся в мир библиотек и лайфхаков, которые помогут вам не только писать код, но и не потерять рассудок!
enumerate(), чтобы избежать "index out of range"Зачем мучиться с обычным for и вручную отслеживать индекс, когда enumerate() может сделать это за вас?
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
Потеряли счёт? Теперь это не ваша проблема!
zip() — для тех, кто не любит одиночествоСобрать два списка в один словарь? Легко!
keys = ['name', 'age', 'city']
values = ['Alice', 30, 'Wonderland']
result = dict(zip(keys, values))
Пожалуйста, не говорите, что вы всё ещё используете циклы для этого!
defaultdict — когда вам нужно больше, чем просто словарьЕсли вам надоело проверять, существует ли ключ в словаре, используйте defaultdict из модуля collections!
from collections import defaultdict
d = defaultdict(int)
d['apples'] += 1
print(d) # defaultdict(, {'apples': 1})
Теперь ваши ключи всегда будут счастливы!
with и контекстные менеджеры — ваш новый лучший другЗабудьте о том, чтобы закрывать файлы вручную. С контекстными менеджерами это делается автоматически!
with open('file.txt') as f:
content = f.read()
Ваши файлы больше не будут страдать от "забыть закрыть"!
f-строки — форматирование с любовьюСкажем "прощай" старым способам форматирования строк!
name = "Bob"
age = 25
print(f"{name} is {age} years old.")
Форматирование, которое даже ваша бабушка поймёт!
itertools — когда вам нужно больше комбинацийЕсли вам нужно сгенерировать все возможные комбинации, itertools — это то, что вам нужно!
import itertools
combinations = list(itertools.combinations(['A', 'B', 'C'], 2))
print(combinations) # [('A', 'B'), ('A', 'C'), ('B', 'C')]
Теперь у вас есть больше комбинаций, чем у вашей любимой игры!
lambda функции — для краткости и элегантностиКогда вам нужна функция, но вы не хотите писать целый def, используйте lambda!
square = lambda x: x ** 2
print(square(5)) # 25
Пока вы не забудете, что это не полноценная функция!
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))
Потратьте время на что-то более важное, например, на кофе!
set() — уникальность в каждом элементеЕсли вам нужно уникальное множество элементов, используйте set().
my_list = [1, 2, 2, 3, 4, 4, 4]
unique = set(my_list)
print(unique) # {1, 2, 3, 4}
Теперь ваши дубликаты могут пойти на отдых!
functools.lru_cache — кэширование для ленивыхЕсли ваша функция выполняет много вычислений, используйте кэширование!
from functools import
***
<center>
***
All images are taken from the [Pixabay.com](https://pixabay.com)Больше полезных статей [4adm.in](https://4admin.mywire.org)