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
   29   30   31   32   33   34   35   36   37   38   39