Quelle est la meilleure façon d'imprimer des éléments à partir d'une liste de listes? J'ai une liste qui ressemble à ceci:

l1 = [['hello', 'world', 'bye'], ['name', 'tour', 'now']]

Je voudrais imprimer à partir de cela, élément par élément, donc quelque chose comme:

hello name
world tour
bye now

Je pensais utiliser une boucle while, quelque chose comme:

while i < 3:
    print(l1[0][i], l1[1][i])
    i -= 1

Mais au lieu de fournir les [0] et [1], je préférerais personnellement qu'il soit codé pour un cas général.

-1
Nauman Shahid 17 avril 2018 à 05:32

3 réponses

Meilleure réponse
for i in range(len(l1[0])):
    for j in range(len(l1)):
        print(l1[j][i], end='')
        if j != len(l1)-1:
            print(' ', end='')
    print()
1
Daniele Cappuccio 17 avril 2018 à 02:45

Utilisez zip pour fusionner les deux listes ensemble élément par élément: print([' '.join(line) for line in zip(*l1)])

EDIT: pour obtenir la même sortie que celle spécifiée par l'OP:

print('\n'.join(' '.join(line) for line in zip(*l1)))

2
TwistedSim 17 avril 2018 à 02:40

Je pense que la manière la plus simple serait

for l in zip(*l1):
    print ' '.join(l)
3
wookiekim 17 avril 2018 à 02:42