我有一个类型为: 的数据对象list[lists['string', 'string', floats]]
,但实际上浮点数也是字符串,我想将其转换为浮点数。我尝试了以下方法,但由于某种原因,它仍然循环遍历内部列表中的前两个元素,但 if 语句似乎正确?有谁知道我做错了什么?
list_of_lists = [
['bla1', 'bla2', '1.', '2.', '3.', '4.'],
['bla3', 'bla4', '5.', '6.', '7.', '8.']
]
for idx_datapoint, datapoint in enumerate(list_of_lists):
print(f'{datapoint = }')
for idx_feature, feature_val in enumerate(datapoint):
if idx_feature in (0, 1):
print(f'{idx_feature = }, {feature_val = }')
print(f'{float(feature_val) = }')
list_of_lists[idx_datapoint][idx_feature] = float(feature_val)
提前谢谢你的帮助!!我想我忽略了一些小东西,所以提前抱歉:D
请记住,列表的某些值中包含字母,因此它们不能更改为浮点数。除此之外,我会这样做:
list_of_lists = [
['bla1', 'bla2', '1.', '2.', '3.', '4.'],
['bla3', 'bla4', '5.', '6.', '7.', '8.']
]
for i, list in enumerate(list_of_lists):
for i2, v in enumerate(list):
try:
list_of_lists[i][i2] = float(v)
except ValueError:
pass # change to whatever you want to do if you cant change it
我刚刚测试了它,它似乎工作正常。只需将“通过”行更改为您想要对其中包含字母的值执行的任何操作(例如删除它们或删除字母)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句