Exercice 7: Transformer une liste (opération de map)

Données

l = [1, 2, 7, 6, 2, 5, 8]

Énoncé

Créer une nouvelle liste contenant chaque nombre augmenté de 1.

Résolution

V1: Énoncé

l = [1, 2, 7, 6, 2, 5, 8]

Nous devons créer une nouvelle liste contenant chaque nombre augmenté de 1.

v2

l = [1, 2, 7, 6, 2, 5, 8]
a = []  # créer une NOUVELLE liste

v3

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
a.append(...)  # on va la remplir...
a.append(...)
a.append(...) 

v4

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
a.append(l[0] + 1)  # ici on doit avoir le premier nombre
a.append(...)
a.append(...) 

v5

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
a.append(l[0] + 1)
a.append(l[1] + 1)
a.append(l[2] + 1)  # ici les deuxièmes et troisièmes etc.

v6

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
# passons à une boucle... introduisons i
i = 0
a.append(l[i] + 1)
a.append(l[1] + 1)
a.append(l[2] + 1)

v7

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
i = 0
a.append(l[i] + 1)
i = 1
a.append(l[i] + 1)
i = 2
a.append(l[i] + 1)  # on a maintenant trois fois la même chose...

v8

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
i = 0
a.append(l[i] + 1)
i = i + 1
a.append(l[i] + 1)
i = i + 1  # on calcule maintenant à partir de l'état précédent
a.append(l[i] + 1)

v9

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
i = 0
a.append(l[i] + 1)
i = i + 1  # réorganisation
a.append(l[i] + 1)
i = i + 1  
a.append(l[i] + 1)
i = i + 1 # cette ligne est inutile mais pratique

v10

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
i = 0
while ...:  # on a exactement la même chose, boucle !
    a.append(l[i] + 1)
    i = i + 1

v11 (résolu)

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
i = 0
while i < len(l):  # on s'arrête quand i dépasse la taille de la liste
    a.append(l[i] + 1)
    i = i + 1

v12

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
i = 0
while i < len(l):
    x = l[i]  # créons une variable x
    a.append(x + 1)
    i = i + 1

v13 (résolu)

l = [1, 2, 7, 6, 2, 5, 8]
a = []  
for x in l:  # c'est une boucle for !
    a.append(x + 1)

Pour en savoir plus

v14 (résolu)

l = [1, 2, 7, 6, 2, 5, 8]
a = [x + 1 for x in l]  # comprehension list !  

v15

l = [1, 2, 7, 6, 2, 5, 8]
a = list(map(plus1, l))  # map, en considérant qu'on a une fonction plus1

v16 (résolu)

l = [1, 2, 7, 6, 2, 5, 8]

def plus1(x):  # on crée ENSUITE la fonction plus1 vu qu'elle n'existe pas
    return x + 1
    
a = list(map(plus1, l))

v17 (résolu)

l = [1, 2, 7, 6, 2, 5, 8]

a = list(map(lambda x:x+1, l))  # ou on utilise une lambda