Python 浮动字符串列表
我想问一个关于在python中将字符串转换为浮点数的问题 我有以下清单:Python 浮动字符串列表,python,floating-point,Python,Floating Point,我想问一个关于在python中将字符串转换为浮点数的问题 我有以下清单: coordinates_S >>> ['0.00000000', '0.00000000', '0.10224900'] 我想使用float() 显然,float(坐标不起作用: TypeError: float() argument must be a string or a number, not 'list' 这是有道理的 不过,我试过: flt_coordinates_S = [] f
coordinates_S
>>> ['0.00000000', '0.00000000', '0.10224900']
我想使用float()
显然,float(坐标
不起作用:
TypeError: float() argument must be a string or a number, not 'list'
这是有道理的
不过,我试过:
flt_coordinates_S = []
for item in coordinates_S:
flt_coordinates_S += float(item)
i、 e.迭代列表中的每个项目,但不起作用。给出的错误为:
TypeError: 'float' object is not iterable
但我似乎不明白为什么。
我做错了什么
我没有发现一个涉及迭代列表中的项目并将其转换为浮点值的问题。问题是您在本应使用
.append()
(用于将单个元素添加到列表中)时使用了+=
(用于使用另一个列表中的元素扩展列表)。这就是为什么会出现错误,因为它认为float(item)
是一个列表,因为您使用了+=
coordinations\u=['0.00000000','0.00000000','0.10224900']
flt_坐标_S=[]
对于坐标中的项目:
飞行坐标附加(浮动(项目))
或者,如果您想在一行中完成此操作:
coordinations\u=['0.00000000','0.00000000','0.10224900']
flt_坐标_S=[坐标_S中项目的浮动(项目)]
flt\u坐标\u S+=float(item)
相当于flt\u坐标\u S.extend(float(item))
;+=
使用另一个iteable的内容扩展列表
您想在列表中附加一个浮点值
flt_coordinates_S = []
for item in coordinates_S:
flt_coordinates_S.append(float(item))
尝试此操作。代码的问题是+=。这适用于字符串或数字。若不将元素附加到列表中,可以使用map将列表中的所有元素直接转换为新列表
flt_coordinates_S = list(map(float,coordinates_S))
另一种选择是,在第二个示例中,您可以尝试使用list(map(float,coordinations))
。在列表上使用+=
用于使用另一个集合扩展列表。您也可以通过列表理解[float(elem)for elem In coordination\S]来完成此操作
措辞上的细微挑剔:+=
不是“将列表附加到另一个列表”,而是从另一个iterable扩展列表,即按顺序附加每个元素。澄清了措辞。通常,你应该更喜欢理解而不是使用映射
。它们的阅读效果更好。
flt_coordinates_S = list(map(float,coordinates_S))