2017-06-21 36 views
3

我想得到一個很好的整潔列表理解這個代碼或類似的東西!Python:如何擴展或追加列表理解格式的多個元素?

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

謝謝!

編輯*索引是一個整數列表。另一個數組的索引列表。

例如,如果指數爲[1,52,150],則目標(這裏,這是我想在一個列表理解上連續索引輸出兩個分開的動作的第二次)

然後extra_indices將爲[1,2,3,52,53,54,150,151,152]

+0

什麼是指數的len /值? –

+0

對於初學者,你可以在列表上迭代:'索引中的索引:'。但讓我們看看一個例子:對於'indices'值,'extra_indices'應該怎麼樣? – CristiFati

+0

「索引」列表包含什麼內容? – voidpro

回答

3

可以使用在列表排版兩個環 - 下面

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

什麼是價值/指數的類型,但?解釋清楚一點 –

+0

對不起,你的意思是問'索引'的類型是什麼?從OPs代碼看起來它是一個整數/浮點數的列表/元組 – kuro

+0

是的。它看起來在第一眼看來,但如果它包含字符串或任何其他類型。對不起,OP必須清楚地提到這個問題。 –

3

代碼應該做的代碼的equivalant,假設索引是整數列表

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] 
+0

太棒了!非常感謝,這是完美的! – Fosa