社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

shankar v • 3 年前 • 1113 次点击  

考虑列表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

有没有可能在没有循环的情况下解包嵌套列表的子列表

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128581
 
1113 次点击  
文章 [ 3 ]  |  最新文章 3 年前
user2668284 user2668284
Reply   •   1 楼
user2668284 user2668284    3 年前

要获得所需的输出,可以执行以下操作:

sl=[[1,2,3],[4,5,6],[7,8,9]]
print('\n'.join([str(x) for y in sl for x in y]))
dev
Reply   •   2 楼
dev    3 年前

你可以把清单展平,然后把它打开。

l = [[1,2,3],[4,5,6],[7,8,9]]
print(*[elt for sl in l for elt in sl])
I'mahdi
Reply   •   3 楼
I'mahdi    3 年前

你可以用 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