首页 > 编程语言 > 详细

Python之filter()函数与替代实现

时间:2020-02-25 19:56:35      阅读:95      评论:0      收藏:0      [点我收藏+]

介绍

filter(f,x)函数用于过滤序列并返回迭代器,结果保留x中f为True的元素,需要新的序列通过list()转换。

例子

过滤列表中的字符串,保留数字。

>>> i = ['hey','1','532nm','17','天气']
>>> f = lambda x: x.isdigit()
>>> o = filter(f,i)
>>> list(o)
['1', '17']

拓展

Python中str对象有isdigit()和isnumeric()两种方法判别是否为数字。
其中isdigit()仅接受0-9的十进制数,而isnumeric()接收0-9以及数字符号。

>>> '77'.isdigit()
True
>>> '77'.isnumeric()
True
>>> '?'.isdigit()
False
>>> '?'.isnumeric()
True

替代

容易想到,还可通过正则表达式进行过滤。
这里巧妙使用try/except规避正则表达式。

>>> i = ['hey','1','532nm','17','天气']
>>> for x in i:
    try:
        o.append(int(x))
    except:
        pass

>>> o
[1, 17]

Python之filter()函数与替代实现

原文:https://www.cnblogs.com/azureology/p/12363282.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!