2013-07-13 37 views
2

我有一個字符串爲以下列表命名升名單列表:如何列表項轉換從字符串到int

[['1', '2', '3', '4', '5', '6'], ['2', '3', '2', '3', '4']] 

我要查看列表爲INT從第2項下面的代碼開始沒有目的,但沒有轉換列表中的項目爲int:

>>> [l[i][2:] for i in range(len(l))] 
[['3', '4', '5', '6'], ['2', '3', '4']] 

我試過地圖,但結果並不成功,如:

>>> [map(int,l[i][2:]) for i in range(len(l))] 
[<map object at 0x00000000029CAE10>, <map object at 0x00000000029CAF98>] 

如何將我的列表項從字符串轉換爲int?

回答

2

嘗試遍歷主要列表元素。

>>> A = [['1', '2', '3', '4', '5', '6'], ['2', '3', '2', '3', '4']] 
>>> [list(map(int, x[2:])) for x in A] 
[[3, 4, 5, 6], [2, 3, 4]] 

調用list()力的Python 3全面評估地圖 - 它沒有必要在Python 2

+0

但我想要的結果,從位置2首發,因此,我有使用[i] [2:]。你能否根據我上面解釋的例子來說明更多?我無法得到你想說的話。 – user2192774

+0

@ user2192774是的,對不起,我最初錯過了。之後我補充說。 –

2

你似乎使用Python 3.x。所以map產生map object(這是一個iterator)。你可以用它在list看到的結果:

>>> l = [['1', '2', '3', '4', '5', '6'], ['2', '3', '2', '3', '4']] 
>>> [list(map(int,l[i][2:])) for i in range(len(l))] 
[[3, 4, 5, 6], [2, 3, 4]] 

其次,你迭代指數irange,然後用在初始列表隨機訪問。在Python你可以遍歷列表而不指數:[list(map(int,sub_list[2:])) for sub_list in l]

但我認爲這是更Python使用列表理解:

>>> [[int(i) for i in sub_list[2:]] for sub_list in l] 
[[3, 4, 5, 6], [2, 3, 4]]