![图片[1]-python如何过滤数字-uusu优素-乐高,模型,3d打印,编程](http://uusucn.zbbe.cn/wp-content/uploads/2024/01/5dd4d410dd432912.jpg)
本文实例总结了Python实现简易过滤删除数字的方法。分享给大家供大家参考,具体如下:
如果想从一个含有数字,汉字,字母的列表中滤除仅含有数字的字符,当然可以采取正则表达式来完成,但是有点太麻烦了,因此可以采用一个比较巧妙的方式:
1、正则表达式解决
importre L=[u'小明','xiaohong','12','adf12','14'] foriinrange(len(L)): ifre.findall(r'^[^\d]\w+',L[i]): printre.findall(r'^\w+$',L[i])[0] elifisinstance(L[i],unicode): printL[i]
2、巧妙地避开正则表达式
L=['xiaohong','12','adf12','14',u'晓明'] forxinL: try: int(x) except: printx
3、使用string内置方法
L=['xiaohong','12','adf12','14',u'晓明'] #对于python3来说同样还可以使用string.isnumeric()方法 forxinL: ifnotx.isdigit(): printx
4、去除两端的数字
如果只是去除两端可能含有数字的字符串里的数字,则可以使用内置的strip,方式如下:
In[24]:importstring
In[25]:astring='12313213215justfor32test1306436'
In[26]:astring.strip(string.digits)
Out[26]:'justfor32test'
In[27]:astring.rstrip(string.digits)
Out[27]:'12313213215justfor32test'
In[30]:astring.lstrip(string.digits)
Out[30]:'justfor32test1306436'
#注意
In[31]:astring
Out[31]:'12313213215justfor32test1306436'
In[32]:astring.strip('0123456')
Out[32]:'justfor32test'
.strip([char]) 中的 char 给定时,则截取两端的字符直到满足不在set(char) 中,不需要有序,切记!
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



















































暂无评论内容