为了账号安全,请及时绑定邮箱和手机立即绑定

如果它们都在单引号中,如何拆分值并转换为列表中的浮点数?

如果它们都在单引号中,如何拆分值并转换为列表中的浮点数?

慕后森 2021-08-17 16:34:10
我有一个列表,内容是:a=['0.00244,-0.001908302,-0.001731396,0.002029896,0.000424,0.000291,0.000148\n']所以它包含一个有数字的成员。他们与我的情况不同的是我所有的数字都在一个里面'',所以一旦我使用 a=[a[0].strip('\n')]那么a[0].split()这给了我:['0.00244,-0.001908302,-0.001731396,0.002029896,0.000424,0.000291,0.000148']我可以删除\n,但是我无法以任何方式提取数字。我想将逗号与数字分开,然后将它们一一删除,但似乎在我的情况下拆分不起作用。
查看完整描述

3 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

您需要指定一个分隔符,split否则它将默认为' '. 在这种情况下,您将使用split(','). 然后,您需要通过强制转换来转换这些数字float,正如 mhawke 提到的那样,将删除\n.


考虑到所有这些,您可以执行列表理解


In [17]: a = ['0.00244,-0.001908302,-0.001731396,0.002029896,0.000424,0.000291,0.000148\n']


In [18]: numbers = [float(n) for n in a[0].split(',')]


In [19]: numbers

Out[19]:

[0.00244,

 -0.001908302,

 -0.001731396,

 0.002029896,

 0.000424,

 0.000291,

 0.000148]

你也可以使用 map


In [22]: list(map(float, a[0].split(',')))

Out[22]:

[0.00244,

 -0.001908302,

 -0.001731396,

 0.002029896,

 0.000424,

 0.000291,

 0.000148]


查看完整回答
反对 回复 2021-08-17
?
炎炎设计

TA贡献1808条经验 获得超4个赞

您可以尝试使用正则表达式从字符串中提取浮点值并转换为浮点数


list(map(float,re.findall(r'(\-?\d+.\d+)',a[0])))

出去:


[0.00244,

 -0.001908302,

 -0.001731396,

 0.002029896,

 0.000424,

 0.000291,

 0.000148]


查看完整回答
反对 回复 2021-08-17
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

一种方法是在逗号上拆分:

'0.00244,-0.001908302,-0.001731396,0.002029896,0.000424,0.000291,0.000148'.split(',')

会导致:

['0.00244', '-0.001908302', '-0.001731396', '0.002029896', '0.000424', '0.000291', '0.000148']



查看完整回答
反对 回复 2021-08-17
  • 3 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信