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

我有一个列表,内容是:

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,但是我无法以任何方式提取数字。我想将逗号与数字分开,然后将它们一一删除,但似乎在我的情况下拆分不起作用。


慕后森
浏览 156回答 3
3回答

浮云间

您需要指定一个分隔符,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]: numbersOut[19]:[0.00244, -0.001908302, -0.001731396, 0.002029896, 0.000424, 0.000291, 0.000148]你也可以使用 mapIn [22]: list(map(float, a[0].split(',')))Out[22]:[0.00244, -0.001908302, -0.001731396, 0.002029896, 0.000424, 0.000291, 0.000148]

炎炎设计

您可以尝试使用正则表达式从字符串中提取浮点值并转换为浮点数list(map(float,re.findall(r'(\-?\d+.\d+)',a[0])))出去:[0.00244, -0.001908302, -0.001731396, 0.002029896, 0.000424, 0.000291, 0.000148]

慕田峪7331174

一种方法是在逗号上拆分:'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']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python