知行编程网知行编程网  2022-11-28 11:00 知行编程网 隐藏边栏  37 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python如何过滤数字的相关知识,包括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学习网,免费的在线学习
,欢迎关注!

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享