215 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)
Run Code Online (Sandbox Code Playgroud)
但这似乎对我不起作用.
Sil*_*ost 395
[float(i) for i in lst]
Run Code Online (Sandbox Code Playgroud)
确切地说,它创建了一个包含浮点值的新列表.与map
方法不同,它可以在py3k中使用.
Tim*_*ker 116
map(float, mylist)
应该这样做.
(在Python 3中,map停止返回一个列表对象,所以如果你想要一个新的列表,而不仅仅是迭代的东西,你需要list(map(float, mylist)
- 或者使用SilentGhost的答案,这可能更具pythonic.)
Den*_*ach 14
float(item)
做正确的事情:它将其参数转换为float并返回它,但它不会就地更改参数.对代码的简单修复是:
new_list = []
for item in list:
new_list.append(float(item))
Run Code Online (Sandbox Code Playgroud)
使用列表理解可以缩短相同的代码: new_list = [float(i) for i in list]
要就地更改列表:
for index, item in enumerate(list):
list[index] = float(item)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,避免使用list
你的变量,因为它伪装了同名的内置函数.
Ami*_*any 11
这将是另一种方法(不使用任何循环!):
import numpy as np
list(np.float_(list_name))
Run Code Online (Sandbox Code Playgroud)
你甚至可以通过numpy做到这一点
import numpy as np
np.array(your_list,dtype=float)
Run Code Online (Sandbox Code Playgroud)
此列表返回np数组为float
您也可以将'dtype'设置为int
归档时间: |
|
查看次数: |
551920 次 |
最近记录: |