我有一个脚本,它读取一个文本文件,从中提取十进制数字作为字符串,并将它们放入一个列表中。
所以我有这个清单:
['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)
但这似乎对我不起作用。
map(float, mylist)
应该这样做。(在Python 3中,map不再返回list对象,因此如果您想要一个新的列表,而不仅仅是要遍历某个列表,那么您要么需要
list(map(float, mylist)
-或者使用silenghost的答案,这个答案可能更像是Python)float(item)
做正确的事情:它将其参数转换为float并返回它,但它不会就地更改参数。代码的一个简单修复方法是:同样的代码可以使用列表理解来写得更短:
new_list = [float(i) for i in list]
要就地更改列表:
顺便说一句,避免对变量使用
list
,因为它伪装了具有相同名称的内置函数。准确地说,它创建了一个带有浮点值的新列表。与
map
方法不同,它将在py3k中工作相关问题 更多 >
编程相关推荐