标签:两种方法 正则表达式 接受 过滤 exce 对象 列表 字符串 例子
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]
标签:两种方法 正则表达式 接受 过滤 exce 对象 列表 字符串 例子
原文地址:https://www.cnblogs.com/azureology/p/12363282.html