2017-04-17 7 views
0

Guten Nachmittag, Ich versuche, 8 Listen veritcally zu drucken und scheint nicht die richtige Formatierung zu finden. Ich weiß, Sie vertikal durch eine Liste drucken ...mehrere Listen vertikal drucken?

for x in list: 
    print(x) 

Aber ich weiß nicht, wie ich mehrere Listen vertikal in einer Reihe drucken. Ich war etwas entlang der Linien dieses Denkens ....

for L in range(0,7): 
    print(" ", end="") 
    try: 
     for column in tableaus: 
      print("{***}".format(str(tableaus[0][8]))) 

    except IndexError: 
     raise RuntimeError("error occurred creating the tableaus") 

Tableaus, von selbst gedruckt sieht wie folgt aus:

[[K♠, 5♠, 10♥, 2♥, 7♦, Q♣, 4♣], [Q♠, 4♠, 9♥, A♥, 6♦, J♣, 3♣], [J♠, 3♠, 8♥, K♦, 5♦, 10♣, 2♣], [10♠, 2♠, 7♥, Q♦, 4♦, 9♣, A♣], [9♠, A♠, 6♥, J♦, 3♦, 8♣], [8♠, K♥, 5♥, 10♦, 2♦, 7♣], [7♠, Q♥, 4♥, 9♦, A♦, 6♣], [6♠, J♥, 3♥, 8♦, K♣, 5♣]] 

Ich will es eher wie dieses aussehen:

l l l l l l l l 
i i i i i i i i 
s s s s s s s s 
t t t t t t t t 
. . . . . . . . 
. . . . 5 6 7 8 
1 2 3 4 
+0

Hier ist ein Tipp: Benutzen Sie 'zip' jede Zeile zu erhalten, die das Drucken in einem Tupel benötigt. –

+0

die gesamte for-Schleife könnte getan werden als: 'für L in Tableaus: versuchen: drucken ([Spalte für Spalte in L]))' ... usw. – davedwards

Antwort

0

Verwenden zip die Listen zu drehen

for l in zip(*tableaus): 
    print(*l) 

Ohne zip, könnten Sie so etwas wie

for i in len(tableaus[0]): 
    print(' '.join([l[i] for l in tableaus])) 
+0

danke für die schnelle Antwort! Leider ist dieses Programm, an dem ich arbeite, für ein Schulprojekt, und ich darf nicht mit zip arbeiten. Gibt es eine andere Möglichkeit, dies zu tun, indem Sie einfach mit .format() spielen? – user7497887

+0

Siehe meine Bearbeitung für eine Nicht-Zip-Lösung –

0

tun Vielleicht dieser Code löst Ihr Problem. Es funktioniert auch, wenn Listen eine andere Länge haben.

tableaus = [ 
    ['a', 'b', 'c'], 
    [1, 2, 3, 4, 5] 
] 
tableas_empty = [False for tableau in tableaus] 

separator = ' ' 
empty_value = ' ' 

while not all(tableas_empty): 
    row = [] 
    for i, item in enumerate(tableaus): 
     if item: 
      value = item.pop(0) 
      row.append(str(value)) 
     else: 
      tableas_empty[i] = True 
      row.append(empty_value) 
    separator.join(row) 

Ergebnis:

'a 1' 
'b 2' 
'c 3' 
' 4' 
' 5'