Parcours simultané de séquences en Python
Pour parcourir plusieurs séquences
simultanément, vous pouvez utiliser la fonction
zip. Dans ce cas, tous les éléments
des séquences seront affichés sous la forme
de tuples, composés d'éléments avec le même
index.
Exemple
Supposons que nous ayons deux listes :
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
Affichons leurs éléments par paires :
for el in zip(lst1, lst2):
print(el)
Résultat du code exécuté :
('a', 1)
('b', 2)
('c', 3)
Exemple
Il est possible de parcourir des séquences
de types différents. Passons un ensemble et un tuple
dans une boucle avec la fonction zip :
st = {'a', 'b', 'c'}
tlp = (1, 2, 3)
for el in zip(st, tlp):
print(el)
Résultat du code exécuté :
('a', 1)
('b', 2)
('c', 3)
Exemple
Si la longueur d'une séquence est supérieure à la seconde, elles seront parcourues selon les éléments de la plus courte :
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]
for el in zip(lst1, lst2):
print(el)
Résultat du code exécuté :
('a', 1)
('b', 2)
('c', 3)
('d', 4)
Exemple
Avec la fonction zip, il est possible de parcourir
trois séquences. Pour cela, listez-les toutes dans le
paramètre de la fonction en les séparant par des
virgules :
lst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']
for el in zip(lst1, lst2, lst3):
print(el)
Résultat du code exécuté :
('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')
Problèmes pratiques
Deux listes sont données :
tst1 = [1, 3, 5]
tst2 = [2, 4, 6]
Affichez leurs éléments par paires sous forme de tuple.
Deux listes sont données :
tst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']
Obtenez à partir d'elles la liste suivante :
['a', '1', 'b', '2', 'c', '3']
Trois listes sont données :
tst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]
Additionnez les éléments correspondants de ces listes et enregistrez le résultat dans une nouvelle liste. L'addition se fera selon le principe suivant :
[
11 + 21 + 31,
12 + 22 + 32,
13 + 23 + 33,
14 + 24 + 34,
]