考虑一个列表l=[1,2,3,4,5]
如果我们想打开列表并打印,我们使用*运算符打开
l=[1,2,3,4,5]
print(*l,sep="n")
输出:
1
2
3
4
5
这是在单个简单列表的情况下
如果我有嵌套列表,并且想像上面那样解压缩所有子列表☝.
考虑一个子列表sl=[[1,2,3],[4,5,6],[7,8,9]]
如果我在打印状态中放入**,它会抛出一条错误消息。
sl=[[1,2,3],[4,5,6],[7,8,9]]
print(**sl,sep="n")
它不起作用
我希望输出为
1
2
3
4
5
6
7
8
9
是否有机会在没有循环的情况下打开嵌套列表的子列表
您可以使用itertools.chain
,如下所示:
>>> from itertools import chain
>>> sl=[[1,2,3],[4,5,6],[7,8,9]]
>>> print(*(chain.from_iterable(sl)),sep="n")
1
2
3
4
5
6
7
8
9
您可以将列表展开,然后对其进行解压缩。
l = [[1,2,3],[4,5,6],[7,8,9]]
print(*[elt for sl in l for elt in sl])
要获得所需的输出,可以执行以下操作:
sl=[[1,2,3],[4,5,6],[7,8,9]]
print('n'.join([str(x) for y in sl for x in y]))