Maison >développement back-end >Tutoriel Python >Comment puis-je entrelacer pythoniquement deux listes de longueurs inégales ?

Comment puis-je entrelacer pythoniquement deux listes de longueurs inégales ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-12 16:41:16894parcourir

How Can I Pythonically Interleave Two Lists of Unequal Lengths?

Entrelacement pythonique de listes

Combiner deux listes de manière alternée est une tâche courante en programmation. Lorsque la première liste contient exactement un élément de plus que la seconde, il existe plusieurs approches pour y parvenir en Python. Voici quelques options Pythonic :

1. Utilisation du découpage :

Une méthode consiste à utiliser le découpage pour créer une nouvelle liste qui entrelace les éléments des deux listes. Cela peut être fait en suivant les étapes suivantes :

  1. Créez une nouvelle liste d'une longueur égale à la somme des longueurs des deux listes d'entrée.
  2. Attribuez les éléments à index pair de la nouvelle liste aux éléments de la première liste d'entrée.
  3. Attribuer les éléments impairs de la nouvelle liste aux éléments de la deuxième entrée liste.

Voici un exemple :

list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
result = [None]*(len(list1)+len(list2))
result[::2] = list1
result[1::2] = list2
print(result)

Sortie :

['f', 'hello', 'o', 'world', 'o']

2. Utilisation du package itertools :

Le package itertools de Python fournit une fonction pratique appelée islice qui peut être utilisée pour parcourir les éléments d'une liste dans un intervalle spécifié. Voici comment vous pouvez l'utiliser pour entrelacer deux listes :

import itertools
list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
result = list(itertools.chain(*itertools.zip_longest(list1, list2)))
print(result)

Sortie :

['f', 'hello', 'o', 'world', 'o']

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