Maison >développement back-end >Tutoriel Python >Comment puis-je diviser une liste Python en morceaux de taille égale ?

Comment puis-je diviser une liste Python en morceaux de taille égale ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-21 05:54:08863parcourir

How Can I Split a Python List into Equally Sized Chunks?

Diviser les listes en morceaux de taille égale

Diviser une longue liste en segments de taille égale peut être une exigence courante dans la programmation Python. Les méthodes suivantes montrent comment y parvenir.

Solution basée sur un générateur :

Une option pratique consiste à utiliser une fonction de générateur qui produit des morceaux de la taille souhaitée. Voici la mise en œuvre :

def chunks(lst, n):
    """Yield successive n-sized chunks from lst."""
    for i in range(0, len(lst), n):
        yield lst[i:i + n]

Exemple :

pprint.pprint(list(chunks(range(10, 75), 10)))

Sortie :

[[10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
 [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
 [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
 [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
 [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
 [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
 [70, 71, 72, 73, 74]]

Approche de compréhension de liste :

Bien que moins lisible que la solution basée sur les fonctions, une ligne unique utilisant la compréhension de liste est également possible :

[lst[i:i + n] for i in range(0, len(lst), n)]

Pour la compatibilité Python 2, remplacez range par xrange.

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!

Déclaration:
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