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

in #python3 days ago

image


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

Привет, Python-энтузиасты! 🐍 Если вы хотите прокачать свои навыки и сделать код более элегантным, то вы попали по адресу. Вот 10 хитростей, которые помогут вам стать настоящим мастером Python, и, возможно, даже заставят ваших коллег задуматься, не стоит ли им перейти на Java. 😉

1. Используйте enumerate()

Зачем писать for i in range(len(my_list))? Просто используйте enumerate(), и ваш код станет не только короче, но и красивее!

for index, value in enumerate(my_list):
    print(index, value)

Плюс: меньше шансов допустить ошибку при индексации. Минус: придется объяснять, что такое enumerate.

2. Лямбда-функции

Когда нужно написать функцию на одну строку, но вы не хотите выглядеть как тот, кто пишет на Java:

square = lambda x: x ** 2
print(square(5))  # 25

Не забудьте, что лямбда-функции — это как однорукие бандиты: иногда они приносят удачу, а иногда — нет.

3. Списковые включения

Зачем писать циклы, когда можно использовать списковые включения? Это как магия, только без шляпы и кроликов.

squares = [x ** 2 for x in range(10)]

Если бы у меня был доллар за каждую строку, которую я сократил с помощью списковых включений, я бы уже купил себе новый ноутбук.

4. zip() — ваш лучший друг

Собираетесь объединить два списка? Используйте zip(), и ваш код станет выглядеть так, будто вы только что закончили курсы по дизайну.

names = ['Alice', 'Bob', 'Charlie']
scores = [85, 90, 95]
combined = list(zip(names, scores))

Проблема: теперь вы не сможете выбрать, с кем из них дружить.

5. collections.defaultdict

Когда вам нужно, чтобы словарь не выдавал ошибку при отсутствии ключа, используйте defaultdict. Это как ваша бабушка, которая всегда знает, где спрятаны печеньки.

from collections import defaultdict

d = defaultdict(int)
d['key'] += 1

Теперь ваш словарь всегда будет готов к вечеринке!

6. itertools — для настоящих гиков

Если вы хотите, чтобы ваш код выглядел как заклинание, используйте библиотеку itertools. Это как швейцарский нож для итераций.

import itertools

combinations = list(itertools.combinations(['A', 'B', 'C'], 2))

Помните: с великой силой приходит великая ответственность... и много итераций.

7. contextlib для управления ресурсами

Забудьте о try...finally. Используйте with, и ваш код станет выглядеть, как будто вы только что вышли из салона красоты.

from contextlib import closing
import urllib.request

with closing(urllib.request.urlopen('http://example.com')) as page:
    for line in page:
        print(line)

Теперь ваш код не только красив, но и безопасен!

8. 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)

Теперь ваши рекурсивные функции будут работать быстрее, чем вы успеете сказать "где мой кофе?"

9. dataclasses для структурированных данных

Хватит писать классы с __init__, используйте dataclasses, и ваш код станет выглядеть как произведение искусства.

from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int

Теперь вы можете сосредоточиться на более важных вещах, например, на том, как избежать вопросов о возрасте.

10. Не бойтесь использовать `type hints


image


All images are taken from the Pixabay.comБольше полезных статей 4adm.in

Sort:  

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.06
TRX 0.32
JST 0.077
BTC 71129.40
ETH 2196.06
USDT 1.00
SBD 0.51