2012-10-02 80 views
-2

可能重複:
How to convert strings into integers in python?如何將字符串轉換爲嵌套列表中的整數?

listy = [['1', '2', '3', '4', '5'], "abc"] 

for item in listy[0]: 
    int(item) 

print listy 

在嵌套表,我怎麼可以改變所有這些stringsints?以上是我的輸出:

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

這是爲什麼?

在此先感謝!

+2

'int(item)'< - 計算一個值,然後*丟棄*。把它放在某個地方。 – 2012-10-02 02:50:15

回答

1

您需要分配轉換後的項目回子列表(listy[0]):

listy[0][:] = [int(x) for x in listy[0]] 

說明:

for item in listy[0]: 
    int(item) 

了在子表和轉換項目的上述迭代他們整數,但它不會將表達式int(item)的結果分配給任何東西。所以結果就會丟失。

[int(x) for x in listy[0]]是一個列表理解(你的for循環的簡寫類型)迭代列表,將每個項目轉換爲一個整數並返回一個新的列表。然後將新列表分配回(在位,可選)到外部列表。

這是針對您的特定問題的非常自定義的解決方案。一個更通用的解決方案涉及遞歸獲取子列表,以及檢測數字轉換候選項的一些方法。

+0

謝謝!如果你不介意,你能解釋一下這個說法是如何工作的嗎?我只是在類 – pearbear

+0

@pearbear學習python:更新了一些解釋。 – mhawke

+0

非常感謝你! – pearbear

相關問題