在Python中,如何將列表中的所有項(xiàng)目轉(zhuǎn)換為浮點(diǎn)數(shù)?我有一個(gè)腳本,它讀取一個(gè)文本文件,將十進(jìn)制數(shù)字作為字符串拉出來并將它們放入一個(gè)列表中。所以我有這個(gè)清單:['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']如何將列表中的每個(gè)值從字符串轉(zhuǎn)換為浮點(diǎn)數(shù)?我試過了:for item in list:
float(item)但這似乎對(duì)我不起作用。
3 回答

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
[float(i) for i in lst]
確切地說,它創(chuàng)建了一個(gè)包含浮點(diǎn)值的新列表。與map
方法不同,它可以在py3k中使用。

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

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
float(item)
做正確的事情:它將其參數(shù)轉(zhuǎn)換為float并返回它,但它不會(huì)就地更改參數(shù)。對(duì)代碼的簡(jiǎn)單修復(fù)是:
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
你的變量,因?yàn)樗鼈窝b了同名的內(nèi)置函數(shù)。
添加回答
舉報(bào)
0/150
提交
取消