這裏是我的Python列表,當我調試它如何Python的轉換多個列表列出
list: [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]]
現在我需要將其轉換爲這種類型列表
list: [1,2,3,4,5]
請諮詢我實現這個。
這裏是我的Python列表,當我調試它如何Python的轉換多個列表列出
list: [[4, 1, False], [4, 2, False], [4, 3, False], [4, 4, False], [4, 5, False]]
現在我需要將其轉換爲這種類型列表
list: [1,2,3,4,5]
請諮詢我實現這個。
你可以用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]
感謝unutbu.really對我有幫助:-) –
我不會推薦這個解決方案,這只是顯示的另一種方式這樣做:
>>> 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)
謝謝jamylak.got it :-) –
如果我說得對不對,然後嘗試這個辦法:
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]
這是不對的 – jamylak
我只是假定他可能想要在一個列表中的所有ID。 –
有什麼邏輯背後? – DonCallisto
我想他想要[1]每個嵌套列表 – Gjordis
應用http://xkcd.com/221/的方法給我們'range(1,6)';既然你沒有指定所需的邏輯,這可能就是你想要的。 ;-) – firefrorefiddle