dans python, la fonction zip () combine des éléments à partir de plusieurs itérables itérables en un seul itérable de tuples. Lorsqu'il est utilisé avec la syntaxe zip ( [iter (s)] n), il offre un moyen pratique de diviser une liste en morceaux de taille égale.
comment cela fonctionne:
L'expression [iter (s)] n crée une liste contenant n copies de l'itérateur sur la liste s. Chaque copie de l'itérateur commence au début de la liste. Le * args déballait la liste en arguments pour zip (), ce qui entraîne une transmission des iterables à la fonction.
Verbose Equivalent:
pour recréer les fonctionnalités de Zip ( [iter (s)] n) avec le code verbeux:
def verbose_chunk(s, n): """Returns a list of chunks of equal size from a list.""" chunks = [] for i in range(n): chunk = [] for j in range(len(s) // n): chunk.append(next(iter(s))) chunks.append(tuple(chunk)) return chunks
Ce code itère d'abord le nombre de morceaux souhaités. Pour chaque morceau, il utilise une boucle imbriquée pour parcourir les éléments de la liste et les ajouter au morceau. Le morceau est ensuite converti en tuple et ajouté à la liste des morceaux.
Exemple:
s = [1,2,3,4,5,6,7,8,9] n = 3 print(list(zip(*[iter(s)]*n))) # [(1,2,3),(4,5,6),(7,8,9)] print(verbose_chunk(s, n)) # [(1,2,3),(4,5,6),(7,8,9)]
Les deux approches produisent le même résultat, avec le Concise zip ( [iter (s)] n) Expression offrant une syntaxe plus efficace pour diviser les listes en morceaux.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3