Python академия
7.55K subscribers
2.47K photos
5 videos
287 links
Учи Python быстро и легко.

Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам.

Подходит для прокачки навыков кодирования.

По всем вопросам @evgenycarter
Download Telegram
🧠 List vs Set: Где искать быстрее?

Представьте, у вас есть массив из 1 миллиона чисел, и нужно проверить, есть ли в нем число 999999.

Что использовать: список (list) или множество (set)?

Сравнение сложности:

▪️ List (in operator): Сложность . Python перебирает элементы по одному, пока не найдет нужное. Если список огромный, это долго.
▪️ Set (in operator): Сложность (в среднем). Множества реализованы как хеш-таблицы. Python вычисляет хеш числа и сразу "прыгает" в нужную ячейку памяти.

Тест скорости:


import time

data_list = list(range(10_000_000))
data_set = set(data_list)

# Поиск в списке
start = time.time()
print(9999999 in data_list)
print(f"List time: {time.time() - start:.5f} sec")

# Поиск в множестве
start = time.time()
print(9999999 in data_set)
print(f"Set time: {time.time() - start:.5f} sec")


🚀 Итог: Если вам нужно часто проверять наличие элемента в большой коллекции - всегда конвертируйте её в set.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍42
🕵️‍♂️ Дебаг без боли: секрет f-строк

Признавайтесь, вы тоже часто пишете такие принты, чтобы проверить значение переменной?


name = "Alex"
age = 25

print("name =", name)
print("age =", age)



Это работает, но писать каждый раз название переменной в кавычках — долго и лениво. В Python есть супер-фишка для f-строк, о которой многие забывают. Просто добавьте знак равно = после имени переменной внутри фигурных скобок!

Как это выглядит:


name = "Alex"
age = 25

print(f"{name=}")
print(f"{age=}")



Вывод:


name='Alex'
age=25



🔥 Почему это круто: Python сам подставляет имя переменной и её значение. Экономит кучу времени при поиске багов!

Знали про этот трюк? Ставьте ❤️, если уже пользуетесь!

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍6