Skip to main content
 首页 » 编程设计

python之将字符串列表转换为 float

2025年05月04日30duanxz

我从外部文件中打印了一些数据并将数据拆分为一个字符串:

string = data 
splitstring = string.split(',') 
print(splitstring) 

这给了我:

['500', '500', '0.5', '50', '1.0', '0.75', '0.50', '0.25', '0.00'] 

我尝试使用这种方法将它们变成 float :

for c in splitstring: 
    splitstring[c]=float(splitstring[c]) 

但它给了我这个错误:

Traceback (most recent call last): 
  File "/Users/katiemoore/Documents/MooreKatie_assign10_attempt2.py", line 44, in <module> 
    splitstring[c]=float(splitstring[c]) 
 TypeError: list indices must be integers, not str 

请您参考如下方法:

使用列表理解:

splitstring = [float(s) for s in splitstring] 

或者,在 Python 2 上,为了速度,使用 map():

splitstring = map(float, splitstring) 

当你在 Python 中遍历一个列表时,你不会得到索引,你会得到值本身,所以 c 不是一个整数而是一个字符串值 ( '500' 在第一次迭代中)。

您必须使用 enumerate() 为您生成索引以及实际值:

for i, value in enumerate(splitstring): 
    splitstring[i] = float(value) 

或使用 for c in range(len(splitstring)): 来只产生索引。但无论如何,列表理解和 map() 选项更好。