繁体   English   中英

如何在 python 速记列表中为每次迭代添加 2 个元素?

[英]How do I add 2 elements for each iteration in a python shorthand list?

我想写一个像[i*2, i*3 for i in range(10)]这样的列表,这样我就可以有一个[0, 0, 2, 3, 4, 6, 6, 9, 8, 12...] (因此对于range(10)中的每个元素,我想从两个计算中将 2 个元素添加到列表中)。

使用itertools.chain.from_iterable任何其他 Python 可迭代扁平化方法

>>> list(itertools.chain.from_iterable([(i*2, i*3) for i in range(10)]))
[0, 0, 2, 3, 4, 6, 6, 9, 8, 12, 10, 15, 12, 18, 14, 21, 16, 24, 18, 27]

更新:

[ i*k for i in range(10) for k in (2, 3) ]

原来的:

只需通过列表理解保持简单:

[ i*k for i in range(10) for k in range(2,4) ]

列表理解中的两个 for 语句怎么样?

[i*j for i in range(10) for j in [2, 3]]
sum((map(lambda x: [x*2, x*3], range(10))), [])

output

[0, 0, 2, 3, 4, 6, 6, 9, 8, 12, 10, 15, 12, 18, 14, 21, 16, 24, 18, 27]

我们也可以这样做,没有任何循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM