Maison > développement back-end > Tutoriel Python > Comment diviser une liste en morceaux égaux à l'aide de zip(*[iter(s)]*n) en Python ?

Comment diviser une liste en morceaux égaux à l'aide de zip(*[iter(s)]*n) en Python ?

Mary-Kate Olsen
Libérer: 2024-11-20 13:03:21
original
442 Les gens l'ont consulté

How to Split a List into Equal Chunks Using zip(*[iter(s)]*n) in Python?

Zippez les itérables en morceaux en Python

En Python, le zip([iter(s)]n) La fonction vous permet de diviser une liste en morceaux de longueur égale. Voici comment cela fonctionne :

Explication :

  1. iter(s) : cela crée un itérateur sur la liste d'entrée s.
  2. [ iter(s)]*n : Ceci crée une liste de n itérateurs, chacun itérant sur la même liste s.
  3. zip(*[iter(s)]*n):

    • Le * décompresse la liste des itérateurs en arguments individuels pour la fonction zip().
    • zip() prend une séquence d'itérateurs et combine leurs éléments en tuples.

Équivalent en code verbeux :

Pour comprendre le fonctionnement interne de zip(*[iter(s)]*n ), écrivons le code équivalent avec une syntaxe plus verbeuse :

s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3

# Create iterators for the list
iter1 = iter(s)
iter2 = iter(s)
iter3 = iter(s)

# Zip the iterators to create chunks
chunks = zip(iter1, iter2, iter3)

# Convert the generator to a list
list_chunks = list(chunks)
Copier après la connexion

Dans ce verbe verbeux version :

  1. Nous créons trois itérateurs pour les mêmes list s.
  2. Nous transmettons ces itérateurs à zip() en utilisant le déballage.
  3. L'expression génératrice résultante est convertie à une liste pour produire le morceaux.

Sortie :

La sortie du code original et détaillé serait la même :

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
Copier après la connexion

Cela démontre comment zip(*[iter(s)]*n) divise facilement une liste en morceaux en utilisant des itérateurs et la fonction zip.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal