是否可以在列表中插入2个单行项目?
例如,通过类似[1, 2, 3, 4]
[ x, x+1 for x in [1, 3]]
答案 0 :(得分:1)
不,你不能这样做。相反,您可以在itertools.chain.from_iterable
中使用生成器表达式来链接可迭代项目或使用嵌套列表理解(不像 chain.from_iterable
那样优化,因为您必须创建然后用另一个循环解压缩它们。)
>>> from itertools import chain
>>> l = [(1, 2), (3, 5)]
>>>
>>> list(chain.from_iterable(i for i in l))
[1, 2, 3, 5]
在python 3.5+中,您可以在列表中解压缩迭代,如下所示,但仍然不在迭代时间。
>>> a = (1, 2)
>>> b = (3, 5)
>>>
>>> [*a, *b]
[1, 2, 3, 5]
答案 1 :(得分:1)
[item for sublist in [ [x, x+1] for x in [1, 3] ] for item in sublist]