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!