将列表列表中的所有元素浮在python

问题描述:

我试图将列表上的所有元素都转换为浮动列表,但是当我像下面的第一个循环那样执行操作时,然后打印它们的类型,它们的类型保持不变是原来的。将列表列表中的所有元素浮在python

for x in f: 
    for a in x: 
     a = float(a) 

for x in f: 
    for a in x: 
     print(type(a),a) 

滑出打印的,我得到

<class 'numpy.str_'> 0.0 
<class 'float'> 0.0 
<class 'float'> 1.0 
<class 'float'> nan 
<class 'numpy.float64'> 0.3 

应该不是第一个循环改变元素的类型?

for x in f: 
    for a in x: 
     a = float(a) 

这并不像您期望的那样更新列表中的元素。你只是将a分配给一个新的变量。

有很多方法可以做到这一点,但一种方法是重新创建您的列表。这里有一个简单的例子

a = [ "1", "2", "3" ] 
a = [ float(x) for x in a ] 
print(a) # Yield [1.0, 2.0, 3.0] 

另一种方式在列表中

for index, a in enumerate(x): 
    x[index] = float(a) 
+0

它的工作是直接更新项目。谢谢! – Atirag

+0

只是一件事,在你的第二个解决方案中,我认为索引应该是第一个循环 – Atirag

+0

Opps,我的不好。更新 – Shaun