Dans cet article, je voudrais parler de la "fonction zip" qui est une fonction intégrée de Python. J'ai connu l'existence de la "fonction zip" avant, et je l'utilise pour une raison quelconque, donc j'aimerais approfondir ma compréhension de la "fonction zip" dans cette période.
Qu'est-ce qu'une "fonction zip" en premier lieu? En termes simples, il s'agit d'une collection de listes multiples données en arguments. Si vous souhaitez en savoir plus, cliquez ici. Bibliothèque standard Python
Comme utilisation de base, celle utilisée dans l'instruction for peut être mentionnée.
#Créez une liste de noms et d'âges
names = ['sato', 'suzuki', 'ito']
ages = [23, 21, 25]
for name, age in zip(names, ages):
print('Nom:{},âge:{}'.format(name, age))
#Nom:sato,âge:23
#Nom:suzuki,âge:21
#Nom:ito,âge:25
Vous pouvez regrouper les deux listes de cette manière.
C'est également possible avec trois listes.
#Créez une liste de noms, d'âges et de villes d'origine
names = ['sato', 'suzuki', 'ito']
ages = [23, 21, 25]
birthplaces = ['Tokyo', 'Préfecture d'Aichi', 'Hokkaido']
for name, age, birthplace in zip(names, ages, birthplaces):
print('Nom:{},âge:{},Lieu de naissance:{}'.format(name, age, birthplace))
#Nom:sato,âge:23,Lieu de naissance:Tokyo
#Nom:suzuki,âge:21,Lieu de naissance:Préfecture d'Aichi
#Nom:ito,âge:25,Lieu de naissance:Hokkaido
Vous le trouverez utile lorsque vous souhaitez dresser une liste.
Vous pouvez le rendre encore plus court si vous le composez simplement.
list(zip(names, ages))
#[('sato', '23'), ('suzuki', '21'), ('ito', '25')]
Cela le rendra comme un taple.
Comment puis-je récupérer le zip? La réponse peut être faite en ajoutant "*" à l'argument.
zips = list(zip(names, ages))
names2, ages2 = zip(*zips)
print(names2)
#('sato', 'suzuki', 'ito')
print(ages2)
#(23, 21, 25)
Il sera retourné comme un taple comme celui-ci. Si vous voulez sortir sous forme de liste, placez-la dans "list ()".
zips = list(zip(names, ages))
names2, ages2 = list(zip(*zips))
print(names2)
#[('sato', 'suzuki', 'ito')]
print(ages2)
#[(23, 21, 25)]
Voyons ce qui se passe lorsque les longueurs de liste sont différentes.
#Créez une liste de noms et d'âges
names = ['sato', 'suzuki', 'ito', 'kato', 'saitou']
ages = [23, 21, 25]
for name, age in zip(names, ages):
print('Nom:{},âge:{}'.format(name, age))
#Nom:sato,âge:23
#Nom:suzuki,âge:21
#Nom:ito,âge:25
Si vous regardez cela, vous pouvez voir qu'il convient au plus court.
Auparavant, lorsque la longueur de la liste était différente, je pense avoir pu confirmer qu'elle correspond à la plus courte. Alors, comment adapter le plus long? Vous pouvez le faire en utilisant le "module zip_longest". Veuillez consulter ici pour plus de détails. module zip_longest
Voyons voir.
#Créez une liste de noms et d'âges
names = ['sato', 'suzuki', 'ito', 'kato', 'saitou']
ages = [23, 21, 25]
for name, age in zip_longest(names, ages):
print('Nom:{},âge:{}'.format(name, age))
#Nom:sato,âge:23
#Nom:suzuki,âge:21
#Nom:ito,âge:25
#Nom:kato,âge:None
#Nom:saitou,âge:None
Vous pouvez voir qu'il est rempli de "Aucun" comme ça. "Aucun" est terne, alors saisissons plutôt l'âge moyen.
#zip_Importer le plus longtemps
from itertools import zip_longest
#Créez une liste de noms et d'âges
names = ['sato', 'suzuki', 'ito', 'kato', 'saitou']
ages = [23, 21, 25]
#Calculer l'âge moyen
age_mean = sum(ages) // len(ages)
#Spécifiez la valeur à remplir avec fillvalue
for name, age in zip_longest(names, ages, fillvalue=age_mean):
print('Nom:{},âge:{}'.format(name, age))
#Nom:sato,âge:23
#Nom:suzuki,âge:21
#Nom:ito,âge:25
#Nom:kato,âge:23
#Nom:saitou,âge:23
Vous pouvez voir qu'il est rempli avec l'âge moyen.
Enfin, vérifions si les longueurs de trois listes ou plus sont différentes.
#zip_Importer le plus longtemps
from itertools import zip_longest
#Créez une liste de noms, d'âges et de villes d'origine
names = ['sato', 'suzuki', 'ito']
ages = [23, 21, 25]
birthplaces = ['Tokyo', 'Préfecture d'Aichi', 'Hokkaido', 'Préfecture de Yamanashi']
#Calculer l'âge moyen
age_mean = sum(ages) // len(ages)
#Spécifiez la valeur à remplir avec fillvalue
for name, age, birthplace in zip_longest(names, ages, birthplaces, fillvalue=age_mean):
print('Nom:{},âge:{},Lieu de naissance:{}'.format(name, age, birthplace))
#Nom:sato,âge:23,Lieu de naissance:Tokyo
#Nom:suzuki,âge:21,Lieu de naissance:Préfecture d'Aichi
#Nom:ito,âge:25,Lieu de naissance:Hokkaido
#Nom:kato,âge:23,Lieu de naissance:Préfecture de Yamanashi
#Nom:saitou,âge:23,Lieu de naissance:23
Lorsque vous vérifiez le résultat de la sortie, le lieu de naissance de la dernière ligne est "23". Veuillez noter que vous ne pouvez remplir qu'une seule valeur de cette manière.
Veuillez vous référer à cet article pour les contre-mesures dans ce cas. Comment utiliser les fonctions Python et zip: Obtenez plusieurs éléments de liste à la fois
Cette fois, j'ai couvert la "fonction zip". Nous sommes impatients de vous aider. Nous continuerons à publier des articles sur les fonctions et les modules, alors jetez un œil si vous le souhaitez.
Recommended Posts