2015-10-19 38 views
1

我有一個列表,它可以有不同的大小,但它總是有第一項。我寫這樣的理解:Python:如何將其餘列表元素添加到列表中,類似於解壓縮?

return { 
    'index': [[i[0][7:], i[1], i[2], i[3]] for i in columns if i[0].startswith("index::")] 
} 

和部分i[1], i[2], i[3]可能會有所不同。它可以有0或更多的大小,我需要將它們指定爲列表元素。

喜歡的東西

return { 
    'index': [[i[0][7:], *i[1:]] for i in columns if i[0].startswith("index::")] 
} 

將是巨大的。

輸入:

[['index::test', '1', '2', '3']] 
[['index::test', '1', '2', '3', '5']] 
[['index::test']] 

輸出:

[['index', '1', '2', '3']] 
[['index', '1', '2', '3', '5']] 
[['index']] 
+1

請發佈樣本輸入和輸出! – Pynchia

回答

1

如果我理解你的權利,你要使用[i[0][7:]] + i[1:]

+0

在你的例子中,第一部分是字符串,第二部分是列表。它會產生一個錯誤。我想修改第一項並保持其他一切不變。 –

+1

然後做'[i [0] [7:]] + i [1:]'。 –

+0

@AnandSKumar是的。它會解決問題 –

1

好的,謝謝你的輸入/輸出數據。 然後,如BrenBarn和Anand S庫馬爾建議

return { 
     'index': [[i[0][7:]]+i[1:]] for i in columns if i[0].startswith("index::")] 
}