在Python中,如何將列表中的所有項目轉換為浮點數?我有一個腳本,它讀取一個文本文件,將十進制數字作為字符串拉出來并將它們放入一個列表中。所以我有這個清單:['0.49','0.54','0.54','0.54','0.54','0.54','0.55','0.54','0.54','0.54','0.55','0.55',' 0.55','0.54','0.55','0.55','0.54','0.55','0.55','0.54']如何將列表中的每個值從字符串轉換為浮點數?我試過了:for item in list:
float(item)但這似乎對我不起作用。
3 回答

嚕嚕噠
TA貢獻1784條經驗 獲得超7個贊
map(float, mylist)
應該這樣做。
(在Python 3中,map停止返回一個列表對象,所以如果你想要一個新的列表,而不僅僅是迭代的東西,你需要list(map(float, mylist)
- 或者使用SilentGhost的答案,這可能更具pythonic。)

侃侃爾雅
TA貢獻1801條經驗 獲得超16個贊
float(item)
做正確的事情:它將其參數轉換為float并返回它,但它不會就地更改參數。對代碼的簡單修復是:
new_list = []for item in list: new_list.append(float(item))
使用列表理解可以縮短相同的代碼: new_list = [float(i) for i in list]
要就地更改列表:
for index, item in enumerate(list): list[index] = float(item)
順便說一句,避免使用list
你的變量,因為它偽裝了同名的內置函數。
添加回答
舉報
0/150
提交
取消