Привет, Python-разработчики! 🐍 Если вы думали, что знаете всё о Python, то вы, вероятно, просто не знаете, как правильно использовать import this. Давайте посмотрим на 10 умных хитростей, которые сделают вашу жизнь проще и, возможно, даже заставят вас улыбнуться. 😄
enumerate(), чтобы не потерять счетКогда вы перебираете списки, используйте enumerate(), чтобы не забыть, на каком элементе остановились.
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
Проблема: забыть, где вы остановились в цикле. Решение: используйте enumerate(). Теперь вы можете забыть всё остальное!
Если вам нужно создать новый список из существующего, используйте списковые включения. Это не только красиво, но и быстро!
squares = [x**2 for x in range(10)]
Проблема: слишком много строк кода. Решение: делайте это в одну строку и выглядите как гений!
zip() для объединения списковКогда у вас есть два списка и вы хотите их объединить, используйте zip(). Это как шить, только без иголки!
names = ['Alice', 'Bob', 'Charlie']
scores = [85, 90, 95]
combined = list(zip(names, scores))
Проблема: списки не соединяются. Решение: используйте zip(), и они будут вместе, как Бонни и Клайд!
collections.defaultdict — забудьте про проверкиЕсли вам нужно работать со словарями, которые могут не содержать ключи, используйте defaultdict. Это как иметь запасной ключ от квартиры!
from collections import defaultdict
d = defaultdict(int)
d['key'] += 1
Проблема: ключ не найден. Решение: просто добавьте его в словарь, и он будет вашим другом!
itertools — для тех, кто любит комбинаторикуЕсли вы хотите создавать комбинации и пермутации, используйте itertools. Это как магия, только с числами!
import itertools
combinations = list(itertools.combinations(['A', 'B', 'C'], 2))
Проблема: слишком много вариантов. Решение: используйте itertools, и вы станете мастером комбинаторики!
functools.lru_cache для кэшированияЕсли у вас есть функции, которые выполняют одинаковые вычисления, используйте кэширование, чтобы ускорить их выполнение. Это как иметь запасной план!
from functools import lru_cache
@lru_cache(maxsize=None)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
Проблема: слишком много вычислений. Решение: кэшируйте результаты, и ваше приложение станет молниеносным!
with для управления ресурсамиИспользуйте контекстные менеджеры with для управления ресурсами. Это как иметь личного помощника, который закрывает двери за вами.
with open('file.txt', 'r') as file:
data = file.read()
Проблема: забыли закрыть файл. Решение: используйте with, и вам не придется беспокоиться!
argparse для обработки аргументов командной строкиЕсли вы пишете скрипты, которые принимают аргументы, используйте argparse. Это как иметь меню в ресторане!
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--name', help='Your name')
args = parser.parse_args()
Проблема: как передать аргументы? Решение: используйте argparse, и ваши пользователи будут счастливы!
pandas для работы с даннымиЕсли вы работаете с данными, вам нужен pandas. Это как швейцарский нож для обработки данных!
import pandas as pd
data = pd
***
<center>
***
All images are taken from the [Pixabay.com](https://pixabay.com)Больше полезных статей [4adm.in](https://4admin.mywire.org)