我在SO Printing list elements on separated lines in Python帖子上查了帖子和答案,而我认为我的问题不同了。
我想要的是改造:
lsts = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
进入输出如下:
[[1],
[1, 1],
[1, 2, 1],
[1, 3, 3, 1],
[1, 4, 6, 4, 1]]
我尝试追加,在for循环中打印 和" \ n" .join()但都失败了。
答案 0 :(得分:0)
以下是对同一想法的改编:
output = "[" + ",\n".join(str(i) for i in lsts) + "]"
答案 1 :(得分:0)
print ']\n'.join(str(lsts).split('],'))
这很糟糕但是你想做到的。
for l in lsts:
print l
除了你错过了第一个和最后一个括号外,几乎没有。所以你可以做到
list_len = len(lsts)
for i in range(list_len):
if i == 0:
print '['+str(lsts[i])
elif i == list_len - 1:
print str(lsts[i]( +']'
else:
print lists[i]
答案 2 :(得分:0)
试试这个:
lsts = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
print('[',end='')
for i,value in enumerate(lsts):
print(value,end='')
if i == len(lsts)-1:
print(']')
else:
print(',')
输出
[[1],
[1, 1],
[1, 2, 1],
[1, 3, 3, 1],
[1, 4, 6, 4, 1]]
答案 3 :(得分:0)
如果修复了lsts的形式,你可以试试这个:
>>> print '['+'\n'.join([ str(i) for i in lsts ]) + ']'
[[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]]
答案 4 :(得分:0)
为了达到您想要的效果,您可以像已建议的那样手动展开并打印外部数组:
>>> lsts = [[1], [2,3], [4, 5, 6]]
>>> print("[" + ",\n".join(str(i) for i in lsts) + "]")
[[1],
[2, 3],
[4, 5, 6]]
不完全符合您的要求,但json.dumps可以通过指定indent
进行一些漂亮的打印:
>>> print(json.dumps(lsts, indent=4))
[
[
1
],
[
2,
3
],
[
4,
5,
6
]
]
然后是pprint,用于人类的智能打印:
>>> pprint(lsts, width=20)
[[1],
[2, 3],
[4, 5, 6]]