导语:
本文主要介绍了关于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学习网,免费的在线学习
,欢迎关注!
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python3 不是内部命令09/28
- ♥ python中如何使用正则表达式过滤网页内容10/31
- ♥ python中矩阵除法运算的三种实现方法08/12
- ♥ 为什么python中使用的模块无法识别10/20
- ♥ python如何分箱12/13
- ♥ python中类对象介绍11/07
内容反馈