在Python中,如何在打印时解压缩嵌套列表中的子列表



考虑一个列表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]))

最新更新