Page 34 - 6734
P. 34
якщо x не 3
print filter(fn1,a) # відфільтрований функцією fn1
список
#print filter(lambda x:x!=3,a) # або так
#print [x for x in a if x!=3] # або так
def fn2(x): return x**2 # функція повертає квадрат
числа
print map(fn2,a) # застосовує fn2 до кожного елемента
def fn3(x,y): return x+y # функція повертає суму двох
чисел
print map(fn3,a,[1,2,3,4,5]) # сума списків
#print map(lambda x,y:x+y,a,[1,2,3,4,5]) # або так
#print [x+y for x,y in zip(a,[1,2,3,4,5])] # або так
print reduce(fn3,a) # підрахувати (((1+2)+3)+4)+5
#print reduce(lambda x, y: x + y, a) # або так
print zip([1,2,3],[4,5,6]) # об'єднати списки
print [i for i in enumerate("abc")] # пронумерований
список
print sorted([(1,2),(2,1),(3,3)], key=lambda x: x[1])
# сортувати за елементами з індексом 1
[1, 2, 4, 5]
[1, 4, 9, 16, 25]
[2, 4, 6, 8, 10]
15
[(1, 4), (2, 5), (3, 6)]
[(0, 'a'), (1, 'b'), (2, 'c')]
[(2, 1), (1, 2), (3, 3)]
Генератори
Генератор створюється функцією, яка використовує інструкцію
yield [16, 19, 37]. Застосовуються для генерування послідовностей.
Виклик метода next генератора виконує цю функцію, поки не
досягнуто наступної інструкції yield, повертає значення після
інструкції yield і зупиняє виконання функції. Наступний виклик
33