首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不剥离以零结尾的非零值的情况下剥离这些0值?

如何在不剥离以零结尾的非零值的情况下剥离这些0值?
EN

Stack Overflow用户
提问于 2019-07-17 03:15:05
回答 3查看 72关注 0票数 1

我正在处理心率数据,我想剔除那天心率从未达到的数字。

下面是一些代码:

代码语言:javascript
复制
result_list = [
    '0 instances of 44 bpm', 
    '0 instances of 45 bpm', 
    '10 instances of 46 bpm', 
    '22 instances of 47 bpm', 
    '354 instances of 65 bpm', 
    '20 instances of 145 bpm'
]

strip_zero = [x for x in result_list if not '0 instances' in x]

print(strip_zero)

结果:

代码语言:javascript
复制
['22 instances of 47 bpm', '354 instances of 65 bpm']

如果使用这个:'\'0 instances'而不是这个:'0 instances'

0个实例均未删除

EN

回答 3

Stack Overflow用户

发布于 2019-07-17 03:18:13

请改用startswith

代码语言:javascript
复制
result_list = [
    '0 instances of 44 bpm', 
    '0 instances of 45 bpm', 
    '10 instances of 46 bpm', 
    '22 instances of 47 bpm', 
    '354 instances of 65 bpm', 
    '20 instances of 145 bpm'
]

strip_zero = [x for x in result_list if not x.startswith('0 instances')]

print(strip_zero)
票数 6
EN

Stack Overflow用户

发布于 2019-07-17 03:21:27

您还可以拆分数字(第一个空格之前的任何内容)并检查它是否为零:

代码语言:javascript
复制
if __name__ == '__main__':
    result_list = [
        '0 instances of 44 bpm',
        '0 instances of 45 bpm',
        '10 instances of 46 bpm',
        '22 instances of 47 bpm',
        '354 instances of 65 bpm',
        '20 instances of 145 bpm'
    ]
    non_zeros = [r for r in result_list if r.split(' ', 1)[0] != '0']
    print(non_zeros)

输出:

代码语言:javascript
复制
[
'10 instances of 46 bpm', 
'22 instances of 47 bpm', 
'354 instances of 65 bpm', 
'20 instances of 145 bpm'
]
票数 0
EN

Stack Overflow用户

发布于 2019-07-17 03:27:37

我只会检查第一个字符是否等于'0',这样你就不必扫描每个字符串了。

代码语言:javascript
复制
strip_zero = [x for x in result_list if x[0] != '0']

应该会更快,也更容易阅读。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57064040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档