Python tricks

Разбить список на части по N штук. Находим каждый N-ный элемент и берем N элементов, начиная от него.


>>> N = 3
>>> a = range(10)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> b = [a[i:i+N] for i in a[::N]]
>>> b
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]

Узнать, есть ли среди элементов хоть один, больший чем N. Или все они больше, чем N?


>>> N = 3
>>> a = [2, 3, 5, 7]
>>> b = any(map(lambda x: x > N, a))
>>> b
True
>>> b = all(map(lambda x: x > N, a))
>>> b
False

Комментариев нет: