Comprehension list (liste en intention)¶
In [1]:
import pocketnoobj
In [2]:
# il existe plusieurs façon de créer une liste
li = [1, 2, 3]
li += [4]
append(li, 5)
print(li)
In [3]:
# on peut utiliser la fonction python range
li = list(range(10))
print(li)
In [4]:
# comment créer une liste de tous les éléments entre 1 et 50 qui sont à la fois multiple de 3 et multiple de 5 ?
# 1. méthode usuelle
li = list()
for i in range(1, 51):
if i%3 == 0:
if i%5 == 0:
append(li, i)
print(li)
# 2. méthode avec les "comprehension list"
li = [i for i in range(1, 51) if i%3 == 0 and i%5 == 0]
print(li)
In [5]:
# Si nous voulons maintenant le carré de tout ces nombres, en une seule instruction
li = [i**2 for i in range(1, 51) if i%3 == 0 and i%5 == 0]
print(li)
Comprehension dictionary¶
In [6]:
# créer un dictionnaire avec les nombres paires inférieurs à 10 comme clé et leur carré comme valeur
d = {i: i**2 for i in range(10) if i%2==0}
print(d)
In [7]:
# utilisation avec deux listes
a = list('python') # on utilise la liste des lettres formant le mot python
# on veut un dictionnaire associant à une position sa lettre
d = {i: a[i] for i in range(len(a))}
print(d)
In [8]:
# pour associer deux listes d'élements quelconques un à un, on peut utiliser la fonction zip
# soit la liste des lettres azertyuiop, on veut associer ses éléments à ceux de la chaîne "python"
In [9]:
d = dict(zip(list('azertuiop'), list('python')))
print(d)
In [10]:
# une autre fonction intéressante est "enumerate"
print(list(enumerate(a, 5)))
In [11]:
# qui est l'équivalent de
print([(i+5, a[i]) for i in range(len(a))])