リストのリストがあります:
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
何か案は?
元のリストのすべてのサブリストを反復処理し、_*
_を使用してprint呼び出しでアンパックします。
_a = [[1, 3, 4], [2, 5, 7]]
for s in a:
print(*s)
_
分離はデフォルトで_' '
_に設定されているため、明示的に指定する必要はありません。これは印刷します:
_1 3 4
2 5 7
_
あなたのアプローチでは、すべてのサブリストのすべての要素を繰り返し、個別に印刷していました。 print(*s)
you npackを使用して、印刷呼び出し内のリスト、これは本質的に次のように変換されます。
_print(1, 3, 4) # for s = [1, 2, 3]
print(2, 5, 7) # for s = [2, 5, 7]
_
一発ギャグ:
print('\n'.join(' '.join(map(str,sl)) for sl in l))
説明:
join関数を使用して、list
をstr
に変換できます。
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'
そのため、改行が必要な場合は、改行記号を使用する必要があります。
ただし、joinは文字列のリストのみを受け入れます。物事のリストを文字列のリストに変換するには、リスト内の各アイテムにstr
関数を適用できます。
l = [1,2,3]
' '.join(map(str, l)) # will return string '1 2 3'
そして、リストsl
の各サブリストl
にこの構造を適用します
あなたはこれを行うことができます:
>>> 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
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)
リスト内のリスト内にリストを入力することができます...