python and some backend notes(ru)
108 subscribers
5 photos
1 file
192 links
Личные заметки и ссылки на статьи по python и backend вопросам, но может кому-то тоже будет интересно
Download Telegram
Цепочки итераторов

Cостыковывая многочисленные итераторы в цепочку, можно
писать чрезвычайно эффективные «конвейеры» обработки данных:

def integers():
for i in range(1, 9):
yield i

>>> chain = integers()
>>> list(chain)
[1, 2, 3, 4, 5, 6, 7, 8]

def squared(seq):
for i in seq:
yield i * i

>>> chain = squared(integers())
>>> list(chain)
[1, 4, 9, 16, 25, 36, 49, 64]

def negated(seq):
for i in seq:
yield -i

>>> chain = negated(squared(integers()))
>>> list(chain)
[-1, -4, -9, -16, -25, -36, -49, -64]
Ключи в словарях

>>> {True: 'да', 1: 'нет', 1.0: 'возможно'}
{True: 'возможно'}

Выражение-словарь {True: 'да', 1: 'нет', 1.0: 'возможно'} вычисляется
как {True: 'возможно'} , потому что сравнение всех ключей этого примера,
True , 1 , и 1.0 , будет показывать их как эквивалентные друг другу, и они
все имеют одинаковое хеш-значение

>>> True == 1 == 1.0
True
>>> (hash(True), hash(1), hash(1.0))
(1, 1, 1)

#hash #eq #dict