Comment combiner les listes dans l'ordre que je veux?

J'ai 3 listes. Je veux ajouter les éléments de ces listes à la nouvelle liste un par un.

Exemple: exemples de listes dont je dispose

list1 = ["a", "b", "z", "k"]
list2 = ["w", "5", "1", "6"]
list3 = ["gt", "ty", "67", "l"]

L'ordre que je veux

new_list = [list1,list2,list3,list1,list2,list3,list1,list2,list3] like this

Ou comme ça

new_list = [a,w,gt,b,5,ty] 

Comment puis-je créer cette liste avec python

0
sanane sanane 6 oct. 2020 à 18:17

4 réponses

Meilleure réponse

Vous pouvez essayer ceci:

import itertools

list1 = ["a", "b", "z", "k"]
list2 = ["w", "5", "1", "6"]
list3 = ["gt", "ty", "67", "l"]


print(list(itertools.chain(*zip(list1, list2, list3))))

Sortie: ['a', 'w', 'gt', 'b', '5', 'ty', 'z', '1', '67', 'k', '6', 'l']

2
baduker 6 oct. 2020 à 15:25

Le pop-up devrait fonctionner pour la deuxième sortie de liste que vous voulez, bien qu'il ne corresponde pas à la première:

new_list = []

while list1 or list2 or list3:
    if list1:
        new_list.append(list1.pop(0))
    if list2:
        new_list.append(list2.pop(0))
    if list3:
        new_list.append(list3.pop(0))
1
Charles Averill 6 oct. 2020 à 15:28

Essaye ça:

newList = []
for x,y,z in zip(list1,list2,list3):
  newList.extend((x,y,z))
1
Wasif Hasan 6 oct. 2020 à 15:35

Vous pouvez concaténer la liste avec "+"

0
Suaralanre 6 oct. 2020 à 15:41