Skip to content

Instantly share code, notes, and snippets.

@TGITS
Last active March 7, 2024 16:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TGITS/384a5e145fe2786e02a61a9792be5fdb to your computer and use it in GitHub Desktop.
Save TGITS/384a5e145fe2786e02a61a9792be5fdb to your computer and use it in GitHub Desktop.
Exemples d'utilisation de zip en Python
houses = ["Stark", "Lannister", "Baratheon", "Greyjoy"]
seats = ["Winterfell", "Casterly Rock", "Storm's End", "Pyke"]
sigils = ["A Gray Direwolf", "A Golden Lion", "A Crowned Black Stag", "A Golden Kraken"]
words = ["Winter is coming", "Hear me roar !", "Our is the fury !", "We do not sow"]
print(f"houses : {houses}")
print(f"seats : {seats}")
print(f"sigils : {sigils}")
print(f"words : {words}")
print("\n###########\n")
print(
f"zip(houses, seats, sigils, words) en tant que liste : \n{list(zip(houses, seats, sigils, words))}",
)
print(
"\nunpacking de zip(houses, seats, sigils, words) :\n",
*zip(houses, seats, sigils, words),
)
print("\n###########\n")
print(
"Affichage de chacun des éléments de la séquence zip(houses, seats, sigils, words) via un for :"
)
for got_house_info in zip(houses, seats, sigils, words):
print(got_house_info)
print("\n###########\n")
print("Utilisation dans une compréhension")
print(
"\n".join(
[f"{house} : {word}" for house, _, _, word in zip(houses, seats, sigils, words)]
)
)
print("\n###########\n")
print("Réalisation d'un 'unzip' et retour à la situation initiale")
print(
"zip(*zip(houses, seats, sigils, words)) comme liste : ",
list(zip(*zip(houses, seats, sigils, words))),
)
print("\nunpacking de zip(*zip(houses, seats, sigils, words)) :")
houses_2, seats_2, sigils_2, words_2 = zip(*zip(houses, seats, sigils, words))
print(f"=> houses_2 : {houses_2}")
print(f"=> seats_2 : {seats_2}")
print(f"=> sigils_2 : {sigils_2}")
print(f"=> seats_2 : {words_2}")
dna_nucleotides = ["G", "C", "T", "A"]
rna_nucleotides = ["C", "G", "A", "U"]
print("La liste des nucléotides de l'ADN :\n", dna_nucleotides)
print("La liste des nucléotides de l'ARN :\n", rna_nucleotides)
print(
"Résultat de l'application de zip sur les 2 listes :\n",
zip(dna_nucleotides, rna_nucleotides),
)
print(
"Résultat de l'application de zip sur les 2 listes après unpacking :\n",
*zip(dna_nucleotides, rna_nucleotides),
)
print(
"Résultat de l'application de zip sur les 2 listes après conversion en liste :\n",
list(zip(dna_nucleotides, rna_nucleotides)),
)
print(
"Résultat de l'application de zip sur les 2 listes après conversion en tuple :\n",
tuple(zip(dna_nucleotides, rna_nucleotides)),
)
print(
"Résultat de l'application de zip sur les 2 listes après conversion en dictionnaire :\n",
dict(zip(dna_nucleotides, rna_nucleotides)),
)
print("\n###########\n")
for pair in zip(dna_nucleotides, rna_nucleotides):
print("Pair de nucléotides ADN - ARN :", pair)
from itertools import count, islice, zip_longest
print("zip avec des séquences infinies")
print(list(islice(zip(count(0), count(1), count(2), count(3)), 10)))
print("\n###########\n")
print("zip avec des séquences de tailles différentes")
numbers = [1, 2, 3, 4, 5]
lower_cap_letters = ["a", "b", "c", "d"]
upper_cap_letters = ["A", "B", "C"]
print(numbers)
print(lower_cap_letters)
print(upper_cap_letters)
print(
"Les 3 listes précédentes 'zippées' avec la fonction zip :",
list(zip(numbers, lower_cap_letters, upper_cap_letters)),
)
print("\n###########\n")
print("Utilisation de zip_longest de itertools")
print(numbers)
print(lower_cap_letters)
print(upper_cap_letters)
print(
"Les 3 listes précédentes 'zippées' avec la fonction itertools.zip_longest :",
list(zip_longest(numbers, lower_cap_letters, upper_cap_letters)),
)
print("\n###########\n")
print("Fonction zip avec 0 ou 1 seule séquence")
print(list(zip()))
print(list(zip(range(10))))
print(list(zip_longest(range(10))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment