我正在尝试将字符串列表转换为浮点列表。我已经尝试了列表理解,映射,并简单地在for循环中写出来。我真的不想使用映射,因为即使使用list(map)
我似乎也无法将其恢复到正确的列表中。
到目前为止,我的尝试都没有奏效,因为我无法找到Python 3x的正确语法。我的最新尝试似乎显示出了希望,但我不断收到以下错误。
Traceback (most recent call last):
File "G:/test.py", line 56, in <module>
heartdis_flt.append(float(item))
TypeError: float() argument must be a string or a number, not 'list'
这是我正在使用的代码:
heartdis = heartdis[5:]
heartdis_flt = []
for item in heartdis:
heartdis_flt.append(float(item))
print(heartdis_flt)
heartdis
是从CSV文件创建的字符串列表。
有人可以解释我的逻辑中的正确语法或可能是一些缺陷吗?
答案 0 :(得分:2)
我发现了一些可行的东西。我使用itertools将列表列表更改为一个列表,然后将其全部转换为浮点数。
heartdis = heartdis[5:]
heartdis_flt = []
heartdis2 = list(itertools.chain.from_iterable(heartdis))
for item in heartdis2:
heartdis_flt.append(float(item))
print(heartdis_flt)
答案 1 :(得分:0)
就像@utdemir所评论的那样,代码的问题在于您将列表视为字符串。你确实可以使用itertools.chain
,但也许你想要改变你从heartdis
开始阅读的方式。我不知道你是如何阅读你的CSV文件的,但是如果你使用的是csv
模块,我估计你不应该将列表列表作为输出。无论如何,你应该检查我的意见。