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

在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)

但这似乎对我不起作用。


白衣非少年
浏览 7411回答 3
3回答

慕勒3428872

[float(i) for i in lst]确切地说,它创建了一个包含浮点值的新列表。与map方法不同,它可以在py3k中使用。

噜噜哒

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

侃侃尔雅

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你的变量,因为它伪装了同名的内置函数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python