在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条经验 获得超15个赞
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
提交
取消