将列表列表中的所有元素浮在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)
它的工作是直接更新项目。谢谢! – Atirag
只是一件事,在你的第二个解决方案中,我认为索引应该是第一个循环 – Atirag
Opps,我的不好。更新 – Shaun