Введение в язык Питон


Связывание выражений - часть 3


      # Compare Haskell expression:

      # result = func car_car

      #          where

      #              car (x:xs) = x

      #              car_car = car (car list_of_list)

      #              func x = x + x^2

      >>> [func for x in list_of_list

      ...       for car in (x[0],)

      ...       for func in (car+car**2,)][0]

      2

В этом примере мы произвели арифметическое действие над первым элементом первого элемента списка list_of_list

и одновременно поименовали это действие (но только в области объемлющего выражения). В качестве "оптимизации" можно посоветовать создавать список длиной не более одного элемента, поскольку с помощью индекса [0] в конце выражения выбираем только первый элемент:

    #---- Efficient stepping down from list-comprehension ---#

          >>> [func for x in list_of_list[:1]

          ...       for car in (x[0],)

          ...       for func in (car+car**2,)][0]       2




Начало  Назад  Вперед



Книжный магазин