我很难将2D列表中的数据从字符串更改为浮点数。我一直在尝试使用嵌套的用于循环,但似乎没有任何效果。任何帮助将不胜感激。谢谢。
我的数据采用这种格式。
[['3.52', '0.95', '2.0', '1.52'],
['3.41', '0.95', '2.0', '1.6'],......]
我目前的方法就是这样。
for item in data:
for n in item:
n=float(n)
我正在使用python 2.7
答案 0 :(得分:1)
您有正确的想法,但实际上并没有使用当前代码更新数组中的值。有很多方法可以做到这一点 - 最简单,只需查找每个元素的索引,然后使用float()
进行转换。
for i in range(len(data)):
for j in range(len(data[i])):
data[i][j] = float(data[i][j])
答案 1 :(得分:1)
在内部for循环中使用enumerate()
来检索索引(比如i
),然后使用item[i] = float(n)
答案 2 :(得分:1)
尝试使用map
函数(在Python 2中):
data = [['3.52', '0.95', '2.0', '1.52'],['3.41', '0.95', '2.0', '1.6']]
result = [map(float, item) for item in data]
print(result)
在Python 3中:
data = [['3.52', '0.95', '2.0', '1.52'],['3.41', '0.95', '2.0', '1.6']]
result = [list(map(float, item)) for item in data]
print(result)
结果将是:
[[3.52, 0.95, 2.0, 1.52], [3.41, 0.95, 2.0, 1.6]]
答案 3 :(得分:1)
您可以使用地图将循环转换为列表理解:
data_flts
map
是具有浮点数的所需子列表。 float
将data
函数应用于原始列表中的子列表i的每个元素,此处称为list(map(...))
。在Python 3.X上,您需要使用map
将NSTextAttachment
输出转换为列表。
您原始程序的问题在于您没有以任何方式保存您的号码,只是在内循环的每次迭代中都覆盖了它。简单修复包括将数字附加到列表中。