![](/img/trans.png)
[英]Efficiently remove elements from a list in python which are also in given lists
[英]How to print list elements (which are also lists) in separated lines in Python
我已经检查了Python上单独行上的SO post 打印列表元素上的帖子和答案,而我认为我的问题是另外一个问题。
我想要的是进行转换:
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()中打印,但是都失败了。
这是对相同想法的改编:
output = "[" + ",\n".join(str(i) for i in lsts) + "]"
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]
尝试这个:
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]]
如果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]]
要完全实现所需的效果,可以像已经建议的那样手动展开并打印外部数组:
>>> 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]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.