【问题标题】:Strip a list item for extracting a specific value in python [duplicate]剥离列表项以在python中提取特定值[重复]
【发布时间】:2016-03-23 10:52:01
【问题描述】:

我有一个列表,它是作为 python 脚本的输出生成的,格式如下:

[' (* 100.856 UnitA', ') [ 98.0%]',
 ' (* 100.598 UnitB', ') [ 98.0%]', 
 ' (*  98.193 UnitC', ') [ 25.6%]']

现在,我有兴趣将每个列表项中的浮点值放入一个新列表中,以便在 python 脚本中进一步处理。有没有办法(可能是内置的python函数)我可以将浮点内容单独剥离到一个新列表中?在上面的例子中,我想要的输出是这样的:

[100.856,98.0,100.598,98.0,98.193,25.6]

如果不是内置函数,还有其他替代方法可以实现吗?

【问题讨论】:

  • 这可以简单地在循环或列表理解中完成。到目前为止,您尝试过什么?
  • 我尝试使用扩展。意识到行不通。蟒蛇新手。所以,想探索这些选项。

标签: python list


【解决方案1】:

使用来自here 的正则表达式模式将提取浮点数并根据需要转换为浮点数:

In [153]:
l=[' (* 100.856 UnitA', ') [ 98.0%]',
 ' (* 100.598 UnitB', ') [ 98.0%]', 
 ' (*  98.193 UnitC', ') [ 25.6%]']
import re
[float(re.findall(r'(-?\d+\.\d+)',x)[0]) for x in l]

Out[153]:
[100.856, 98.0, 100.598, 98.0, 98.193, 25.6]

所以这里的棘手之处在于您需要搜索数字\d,但还要搜索小数点和尾随数字

【讨论】:

    猜你喜欢
    • 2023-02-07
    • 2018-12-10
    • 1970-01-01
    • 2023-01-24
    • 2018-02-19
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多