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

2024-04-26 19:14:54 发布

您现在位置: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)

但这似乎对我不起作用。


Tags: 字符串in脚本列表for数字floatitem
3条回答

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

(在Python 3中,map不再返回list对象,因此如果您想要一个新的列表,而不仅仅是要遍历某个列表,那么您要么需要list(map(float, mylist)-或者使用silenghost的答案,这个答案可能更像是Python)

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,因为它伪装了具有相同名称的内置函数。

[float(i) for i in lst]

准确地说,它创建了一个带有浮点值的新列表。与map方法不同,它将在py3k中工作

相关问题 更多 >