为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中,如何将列表中的所有项目转换为浮点数?

在Python中,如何将列表中的所有项目转换为浮点数?

白衣非少年 2019-08-16 14:19:20
在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 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

[float(i) for i in lst]

确切地说,它创建了一个包含浮点值的新列表。与map方法不同,它可以在py3k中使用。


查看完整回答
反对 回复 2019-08-16
?
噜噜哒

TA贡献1784条经验 获得超7个赞

map(float, mylist) 应该这样做。

(在Python 3中,map停止返回一个列表对象,所以如果你想要一个新的列表,而不仅仅是迭代的东西,你需要list(map(float, mylist)- 或者使用SilentGhost的答案,这可能更具pythonic。)


查看完整回答
反对 回复 2019-08-16
?
侃侃尔雅

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你的变量,因为它伪装了同名的内置函数。


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 7410 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信