16. Programmation fonctionnelle¶
16.1. list comprehension¶
>>> l = [1,2,3,4]
>>> my_list = [i**2 for i in l]
>>> my_list
[1, 4, 9, 16]
>>> my_list = [ "number_%s" % i for i in l]
>>> my_list
['number_1', 'number_2', 'number_3', 'number_4']
16.2. dict comprehension (a/c Py2.7)¶
>>> name = 'john doe'
>>> { k: v for v, k in enumerate(name)}
{' ': 4, 'e': 7, 'd': 5, 'h': 2, 'j': 0, 'o': 6, 'n': 3}
16.3. map¶
appliquer, en une seule instruction, une fonction donnée à tous les éléments d’une liste.
>>> def add_5(n):
... return n + 5
>>> l = [1, 5, 9, 7]
>>> list(map(add_5, l))
[6, 10, 14, 12]
16.4. filter¶
>>> def contains_a(s):
... if 'a' in s:
... return True
... return False
>>> l =['joe', 'bill', 'patricia', 'pamela', 'eric', 'aragorn']
>>> filter(contains_a, l)
['patricia', 'pamela', 'aragorn']
16.5. zip¶
>>> x = ['a', 'b', 'c']
>>> y = [1, 2, 3]
>>> zip(x, y)
[('a', 1), ('b', 2), ('c', 3)]