考虑一个列表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
是否有机会在没有循环的情况下解包嵌套列表的子列表
要获得所需的输出,可以执行以下操作:
sl=[[1,2,3],[4,5,6],[7,8,9]]
print('\n'.join([str(x) for y in sl for x in y]))
您可以将列表展平,然后将其解压缩。
l = [[1,2,3],[4,5,6],[7,8,9]]
print(*[elt for sl in l for elt in sl])
您可以使用itertools。链
如下所示:
>>> 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
问题内容: 我认为“解压”可能是错误的词汇-抱歉,我确定这是一个重复的问题。 我的问题很简单:在一个需要项目列表的函数中,如何在不出错的情况下传递Python列表项目? 当然,必须有一种方法来扩展列表,并在蹄上传递函数吗? 问题答案:
问题内容: 我有两个列表,每个列表具有相等数量的项目。这两个列表如下所示: 我正在寻找一个看起来像这样的清单: 我试图使用这样的东西: 合并两个列表列表的最佳方法是什么?提前致谢。 问题答案:
问题内容: 伙计们 我正在尝试找到问题的最优雅解决方案,并且想知道python是否为我想做的事情内置了任何东西。 我正在做的是这个。我有一个列表,并且我有一个接受项目并返回列表的函数。我可以使用列表推导来转换所有内容,例如: 但这返回一个列表列表; 我真正想要的是获取扁平化的列表; 现在,其他语言也有它。传统上用函数式编程语言来称呼它,而.Net称它为。python有类似的东西吗?有没有一种巧妙的
问题内容: 我想复制一个2D列表,以便如果我修改一个列表,则不修改另一个列表。 对于一维列表,我只是这样做: 现在,如果我修改了b,a就不会修改。 但这不适用于二维列表: 如果我修改了b,a也会被修改。 我该如何解决? 问题答案: 对于不管尺寸多少都可以工作的更通用的解决方案,请使用:
问题内容: 用Python的方式对压缩列表进行排序是什么? 代码: 上面的代码显示 [[‘d’,3),(’a’,2),(’t’,1),(’x’,0)] 我想排序 压缩 的价值观。因此,理想情况下,它最终看起来像这样 [[‘x’,0),(’t’,1),(’a’,2),(’d’,3)] 。 问题答案:
问题内容: 我正在尝试将嵌套列表列表转换为Python 3.3中的元组列表。但是,似乎我没有这样做的逻辑。 输入如下所示: 所需的输出应如下所示: 问题答案: 只需使用列表理解即可: 演示: