Python 在单独的行中打印列表列表
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/38872341/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Print list of lists in separate lines
提问by skorada
I have a list of lists:
我有一个列表列表:
a = [[1, 3, 4], [2, 5, 7]]
I want the output in the following format:
我想要以下格式的输出:
1 3 4
2 5 7
I have tried it the following way , but the outputs are not in the desired way:
我已按以下方式尝试过,但输出不是所需的方式:
for i in a:
for j in i:
print(j, sep=' ')
Outputs:
输出:
1
3
4
2
5
7
While changing the print call to use end
instead:
在更改打印调用以使用时end
:
for i in a:
for j in i:
print(j, end = ' ')
Outputs:
输出:
1 3 4 2 5 7
Any ideas?
有任何想法吗?
回答by Dimitris Fasarakis Hilliard
Iterate through every sub-list in your original list and unpack it in the print call with *
:
遍历原始列表中的每个子列表,并在打印调用中使用*
以下命令将其解包:
a = [[1, 3, 4], [2, 5, 7]]
for s in a:
print(*s)
The separation is by default set to ' '
so there's no need to explicitly provide it. This prints:
分隔默认设置为,' '
因此无需明确提供。这打印:
1 3 4
2 5 7
In your approach you were iterating for every element in every sub-list and printing that individually. By using print(*s)
you unpackthe list inside the print call, this essentially translates to:
在您的方法中,您对每个子列表中的每个元素进行迭代并单独打印。通过使用print(*s)
您在打印调用中解压缩列表,这基本上转换为:
print(1, 3, 4) # for s = [1, 2, 3]
print(2, 5, 7) # for s = [2, 5, 7]
回答by ailin
oneliner:
单线:
print('\n'.join(' '.join(map(str,sl)) for sl in l))
explanation:
you can convert list
into str
by using join function:
说明:
可以使用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'
so, if you want linebreaks you should use new line symbol.
But join accepts only list of strings. For converting list of things to list of strings, you can apply str
function for each item in list:
所以,如果你想要换行符,你应该使用换行符。
但是 join 只接受字符串列表。要将事物列表转换为字符串列表,您可以str
为列表中的每个项目应用函数:
l = [1,2,3]
' '.join(map(str, l)) # will return string '1 2 3'
And we apply this construction for each sublist sl
in list l
我们对列表sl
中的每个子列表应用这种结构l
回答by nalzok
You can do this:
你可以这样做:
>>> 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
回答by Vinit Pillai
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)
you could enter lists within lists within lists ..... and yet everything will be printed as u expect it to be.
您可以在列表中的列表中输入列表......但所有内容都将按照您的预期打印。