2016-08-10 10 views
4

私はリストのリストを持っている:プリント別々の行でリストのリスト

a = [[1, 3, 4], [2, 5, 7]] 

私は次の形式で出力したい:

1 3 4 
2 5 7 

私はそれを次の方法を試してみましたが、出力は、所望の方法ではない。

for i in a: 
    for j in i: 
     print(j, sep=' ') 

出力:

1 
3 
4 
2 
5 
7 

代わりendを使用するために、印刷の呼び出しを変えながら:

for i in a: 
    for j in i: 
     print(j, end = ' ') 

出力:

1 3 4 2 5 7 

任意のアイデア?

答えて

8

あなたの元のリスト内のすべてのサブリストを反復処理し、*と印刷コールでそれを解凍:

a = [[1, 3, 4], [2, 5, 7]] 
for s in a: 
    print(*s) 

分離は' 'に設定され、デフォルトであるので、明示的にそれを提供する必要はありません。あなたのアプローチでは、すべてのサブリストのすべての要素を繰り返して個別に印刷していました。 print(*s)を使用することにより、印刷コール内部のリストは、これは本質的に変換を展開

print(1, 3, 4) # for s = [1, 2, 3] 
print(2, 5, 7) # for s = [2, 5, 7] 
+0

ありがとうございます! *は何をしていますか? – skorada

+0

リストの内容を 'print'呼び出しにアンパックします。 'print(* s)' 's = [1、2、3]'は 'print(1、2、3)'に相当します。 –

8

oneliner:

print('\n'.join(' '.join(map(str,sl)) for sl in l)) 

説明:あなたは機能に参加使用してstrlistを変換することができ

l = ['1','2','3'] 
' '.join(l) # will give you a next string: '1 2 3' 
'.'.join(l) # and it will give you '1.2.3' 

o、改行が必要な場合は、改行記号を使用してください。
しかし、joinは文字列のリストのみを受け入れます。文字列のリストに物事のリストを変換するためには、リスト内の各項目についてstr機能を適用することができます。

l = [1,2,3] 
' '.join(map(str, l)) # will return string '1 2 3' 

そして私たちは、リスト内の各サブリストslためにこの構成を適用l

2
あなたがこれを行うことができます

>>> lst = [[1, 3, 4], [2, 5, 7]] 
>>> for sublst in lst: 
...  for item in sublst: 
...    print item,  # note the ending ',' 
...  print      # print a newline 
... 
1 3 4 
2 5 7 
0
def print_list(s): 
    for i in range(len(s)): 
     if isinstance(s[i],list): 
      k=s[i] 
      print_list(k) 
     else: 
      print(s[i]) 

s=[[1,2,[3,4,[5,6]],7,8]] 
print_list(s) 

あなたは、リスト内のリストの中にリストを入力することができ.....とuはそれがあることを期待してまだすべてが印刷されます。

+0

あなたはリスト内のリスト内にリストを入力することができます.....しかし、それが期待されるようにすべてが印刷されます。 –

関連する問題