2013-05-15 21 views
1

這裏是我的Python列表,當我調試它如何Python的轉換多個列表列出

list: [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]] 

現在我需要將其轉換爲這種類型列表

list: [1,2,3,4,5] 

請諮詢我實現這個。

+1

有什麼邏輯背後? – DonCallisto

+1

我想他想要[1]每個嵌套列表 – Gjordis

+1

應用http://xkcd.com/221/的方法給我們'range(1,6)';既然你沒有指定所需的邏輯,這可能就是你想要的。 ;-) – firefrorefiddle

回答

7

你可以用list comprehension生成列表:

In [11]: seq 
Out[11]: [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]] 

In [12]: [item[1] for item in seq] 
Out[12]: [1, 2, 3, 4, 5] 

,或者使用與mapoperator.itemgetter

In [13]: import operator 

In [14]: map(operator.itemgetter(1), seq) 
Out[14]: [1, 2, 3, 4, 5] 
+0

感謝unutbu.really對我有幫助:-) –

3

我不會推薦這個解決方案,這只是顯示的另一種方式這樣做:

>>> L = [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]] 
>>> zip(*L)[1] 
(1, 2, 3, 4, 5) 

然而,這將是有用的,如果你在訪問其他每個列的還有:

>>> cols = zip(*L) 
>>> cols[0] 
(4, 4, 4, 4, 4) 
>>> cols[1] 
(1, 2, 3, 4, 5) 
+0

謝謝jamylak.got it :-) –

0

如果我說得對不對,然後嘗試這個辦法:

my_list_ids = [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]] 
[my_id for list_ids in my_list_ids for my_id in list_ids if my_id] 

輸出:

[4, 1, 4, 2, 4, 3, 4, 4, 4, 5] 
+1

這是不對的 – jamylak

+0

我只是假定他可能想要在一個列表中的所有ID。 –

相關問題