2017-04-17 1 views
0

こんにちは、 私は8リストをveritcally印刷しようとしており、正しいフォーマットを見つけることができないようです。私はしかし、私は列に縦に複数のリストを印刷する方法を知らないあなたは複数のリストを縦に印刷する?

for x in list: 
    print(x) 

...によって垂直リストを印刷することができます知っています。私はこの線に沿って何かを考えていた ....

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") 

タブローは、それ自体で印刷されている場合は、次のようになります。

[[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♣]] 

が、私はそれがより次のようになりたいですリストを回転させる

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

はここにヒントがあります:タプルの印刷を必要とする各列を取得するには、 'zip'を使用しています。 –

+0

forループ全体は次のようにして実行することができます: 'for L in tableaus: try: print([Lの列])' ... etc ... – davedwards

答えて

0

使用zip

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

zipがなければ、あなたは

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

クイックレスポンスありがとう!残念ながら私が取り組んでいるこのプログラムは学校プロジェクトのためのもので、私はzipを使うことはできません。 .format()で再生するだけで、これを行う他の方法はありますか? – user7497887

+0

非zipソリューションの私の編集を参照 –

0

たぶん、このコードはあなたの問題を解決するような何かを行うことができます。また、リストの長さが異なる場合にも機能します。

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) 

結果:

'a 1' 
'b 2' 
'c 3' 
' 4' 
' 5' 
関連する問題