J'ai deux listes, dont le premier est assuré de contenir exactement un élément de plus que le second . J'aimerais connaître la manière la plus pythonique de créer une nouvelle liste dont les valeurs d'indice pair proviennent de la première liste et dont les valeurs d'indice impair proviennent de la deuxième liste.
# example inputs
list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
# desired output
['f', 'hello', 'o', 'world', 'o']
Cela fonctionne, mais ce n'est pas joli :
list3 = []
while True:
try:
list3.append(list1.pop(0))
list3.append(list2.pop(0))
except IndexError:
break
Comment y parvenir autrement ? Quelle est l'approche la plus pythique ?
2 votes
Duplicata possible de Alternance d'itérateurs en Python
0 votes
Pas un doublon ! La réponse acceptée dans l'article ci-dessus produit une liste de tuples, et non une liste unique et fusionnée.
0 votes
@Paul : Oui, la réponse acceptée ne donne pas la solution complète. Lisez les commentaires et les autres réponses. La question est fondamentalement la même et les autres solutions peuvent être appliquées ici.
3 votes
@Felix : Je suis respectueusement en désaccord. C'est vrai, les questions sont dans le même voisinage mais pas vraiment des doublons. Comme preuve vague, jetez un coup d'oeil aux réponses potentielles ici et comparez avec l'autre question.
0 votes
Regarde ça : stackoverflow.com/questions/7529376/