【问题标题】:Print multidimensional list in python3在python3中打印多维列表
【发布时间】:2014-11-03 06:45:34
【问题描述】:
我正在寻找一种以特定方式打印多维列表的方法。
这就是我的列表充满 int 的样子。
[[1,2,3],[4,5,6]]
或
[[1,2,3,4,5,6]]
我想在列表中的两个“大”元素之间用空格和逗号打印每个元素。因此,对于我的示例,输出将是:
1 2 3, 4 5 6
和
1 2 3 4 5 6
我使用 python 3.4.2
【问题讨论】:
标签:
list
python-3.x
printing
multidimensional-array
【解决方案1】:
In [78]: L = [[1,2,3],[4,5,6]]
In [79]: ', '.join([' '.join([str(i) for i in subl]) for subl in L])
Out[79]: '1 2 3, 4 5 6'
In [80]: L = [[1,2,3,4,5,6]]
In [81]: ', '.join([' '.join([str(i) for i in subl]) for subl in L])
Out[81]: '1 2 3 4 5 6'
【解决方案2】:
使用'sep'.join(...) 可以很容易地连接字符串,sep 是分隔符。在加入数组一部分的数字之前,您需要将它们转换为字符串。这可以使用map 函数轻松完成。对于i 中的每个元素,它应用str 函数。将各部分的编号用空格隔开后,就可以将各部分加入到最终结果中。
l = [[1,2,3],[4,5,6]]
print ', '.join([' '.join(map(str, i)) for i in l])
输出:
1 2 3, 4 5 6
注意:在 Python 3 中,您需要使用括号调用 print:print(...)。
【解决方案3】:
>>> l = [[1, 2, 3], [4, 5, 6]]
>>> ', '.join(map(lambda x: ' '.join(map(str, x)), l))
'1 2 3, 4 5 6'
>>> l = [[1, 2, 3, 4, 5, 6]]
>>> ', '.join(map(lambda x: ' '.join(map(str, x)), l))
'1 2 3 4 5 6'
【解决方案4】:
ls = [[1, 2, 3, 4], [5, 6, 7, 8]]
for n in range(0, len(ls)):
for m in range(0, len(ls[n])):
print(str(ls[n][m]) + ' ', end='')
if n < (len(ls)-1):
print(', ', end='')
else:
print('')
【讨论】:
-
虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高答案的长期价值。请阅读此how-to-answer 以提供高质量的答案。