Maison >développement back-end >Tutoriel Python >Pourquoi la compression de listes en Python donne-t-elle une liste de tuples, pas une liste concaténée ?
Compression de listes en Python : clarification des différences de taille
Lorsque vous essayez de compresser plusieurs listes ensemble, vous pouvez rencontrer un comportement inattendu concernant la taille de la liste résultante . Cet article aborde une idée fausse courante et fournit une compréhension claire du fonctionnement de zip() en Python.
Initialement, un programme tentant de compresser trois listes de taille 20 peut anticiper une liste de résultats de taille trois. Cependant, la liste zipall résultante contient à la place 20 éléments. Cette différence se produit car zip() ne concatène pas les listes ; au lieu de cela, il crée une liste de tuples, chaque tuple contenant les éléments correspondants des listes d'origine.
Considérons l'exemple suivant :
a = b = c = range(20) zipall = zip(a, b, c)
La liste zipall de sortie aura 20 éléments, chacun l'élément étant un tuple de la forme (a_element, b_element, c_element) :
[(0, 0, 0), (1, 1, 1), ... (17, 17, 17), (18, 18, 18), (19, 19, 19)]
Par conséquent, pour déterminer le nombre d'éléments dans chaque tuple, on peut examiner la longueur de n'importe lequel de ces éléments :
len(zipall[0])
Cela renverra une longueur de 3, indiquant que chaque tuple contient trois éléments.
Notez que si les listes d'origine étaient vides, l'expression len(zipall) renverrait 0, car une liste vide n'a aucun élément avec lequel compresser.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!