Python:如何以列表推导格式扩展或追加多个元素?

时间:2017-06-21 05:32:43

标签: python for-loop list-comprehension

我想为这段代码或类似的东西获得一个很好的整理列表理解!

extra_indices = []
for i in range(len(indices)):
    index = indices[i]
    extra_indices.extend([index, index + 1, index +2])

谢谢!

编辑*索引是整数列表。另一个数组的索引列表。

例如,如果index是[1,52,150]那么目标(这里,这是我第二次想要对列表理解中的连续索引输出进行两次单独的操作)

然后extra_indices将是[1,2,3,52,53,54,150,151,152]

2 个答案:

答案 0 :(得分:4)

你可以在list comp中使用两个循环 -

extra_indices = [index+i for index in indices for i in range(3)]

答案 1 :(得分:3)

下面的代码应该做代码的等价物,假设索引是整数列表

from itertools import chain
extra_indices = list(chain(*([x,x+1,x+2] for x in indices)))

>>> indices = range(3)
>>> list(chain(*([x,x+1,x+2] for x in indices)))
>>> [0, 1, 2, 1, 2, 3, 2, 3, 4]