导语:
本文主要介绍了关于python如何过滤数字的相关知识,包括python数字类型包括,以及python取任意值这些编程知识,希望对大家有参考作用。
本文通过实例总结了Python实现简单过滤和删除数字的方法。分享给大家,供大家参考,如下:
如果你想从一个包含数字、汉字、字母的列表中过滤掉只包含数字的字符,当然可以使用正则表达式来完成,但是有点太繁琐了,可以使用更巧妙的方式:
1、正则表达式解决
import re
L = [u'小明', 'xiaohong', '12', 'adf12', '14']
for i in range(len(L)):
if re.findall(r'^[^\d]\w+',L[i]):
print re.findall(r'^\w+$',L[i])[0]
elif isinstance(L[i],unicode):
print L[i]
2、巧妙地避开正则表达式
L = [ 'xiaohong', '12', 'adf12', '14',u'晓明']
for x in L:
try:
int(x)
except:
print x
3、使用string内置方法
L = [ 'xiaohong', '12', 'adf12', '14',u'晓明']
#对于python3来说同样还可以使用string.isnumeric()方法
for x in L:
if not x.isdigit():
print x
4、去除两端的数字
如果你只是想从两端可能包含数字的字符串中删除数字,你可以使用内置的strip,如下所示:
In [24]: import string
In [25]: astring = '12313213215just for 32 test 1306436'
In [26]: astring.strip(string.digits)
Out[26]: 'just for 32 test '
In [27]: astring.rstrip(string.digits)
Out[27]: '12313213215just for 32 test '
In [30]: astring.lstrip(string.digits)
Out[30]: 'just for 32 test 1306436'
#注意
In [31]: astring
Out[31]: '12313213215just for 32 test 1306436'
In [32]: astring.strip('0123456')
Out[32]: 'just for 32 test '
.strip([char])中的char给定的时候,截取两端的字符,直到字符不在set(char)中,不需要顺序,切记!
python学习网,免费的在线学习
,欢迎关注!
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中比较几个数字的大小09/02
- ♥ python文件以什么结尾12/12
- ♥ python如何使用def关键字08/17
- ♥ python实战安装openpyxl09/03
- ♥ python配置文件错误如何解决01/06
- ♥ 如何编写python循环11/06
内容反馈