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) 中,不需要有序,切记!

以下分别是python2和python3中string的方法:

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • Python过滤列表用法实例分析

    本文实例讲述了Python过滤列表用法.分享给大家供大家参考,具体如下: 过滤列表 [mapping-expression for element in source-list if filter-expression] 以 if 开头的是过滤器表达式,过滤器表达式可以是返回值为真或者假(在 Python 中是 几乎任何东西)的任何表达式.任何经过滤器表达式演算值为元素的真都可以包含在映射中.其它的元素都将忽略,它们不会进入映射表达式,更不会包含在输出列表中. >>> li = [&qu

  • Python数组条件过滤filter函数使用示例

    使用filter函数,实现一个条件判断函数即可. 比如想过滤掉字符串数组中某个敏感词,示范代码如下: #filter out some unwanted tags def passed(item): try: return item != "techbrood" #can be more a complicated condition here except ValueError: return False org_words = [["this","is

  • Python简单过滤字母和数字的方法小结

    本文实例讲述了Python简单过滤字母和数字的方法.分享给大家供大家参考,具体如下: 实例1 crazystring = 'dade142.!0142f[., ]ad' # 只保留数字 new_crazy = filter(str.isdigit, crazystring) print(''.join(list(new_crazy))) #输出:1420142 # 只保留字母 new_crazy = filter(str.isalpha, crazystring) print(''.join(l

  • Python 过滤字符串的技巧,map与itertools.imap

    具体的实例 我们需要在目录中遍历,包括子目录(哈哈),找出所有后缀为:rmvb ,avi ,pmp 的文件.(天哪?!你要干什么?这可是我的隐私啊--) 复制代码 代码如下: import os def anyTrue(predicate, sequence): return True in map(predicate, sequence) def filterFiles(folder, exts): for fileName in os.listdir(folder): if os.path.

  • Python过滤函数filter()使用自定义函数过滤序列实例

    filter函数: filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤.最终一次性返回过滤后的结果. filter()函数有两个参数: 第一个,自定函数名,必须的 第二个,需要过滤的列,也是必须的 DEMO 需求,过滤大于5小于10的数: 复制代码 代码如下: # coding=utf8 # 定义大于5小于10的函数 def guolvhanshu(num):     if num>5 and num<

  • Python实现简单过滤文本段的方法

    本文实例讲述了Python实现简单过滤文本段的方法.分享给大家供大家参考,具体如下: 一.问题: 如下文本: ## Alignment 0: score=397.0 e_value=8.2e-18 N=9 scaffold1&scaffold106 minus 0- 0: 10026549 10007782 2e-75 0- 1: 10026550 10007781 8e-150 0- 2: 10026552 10007780 1e-116 0- 3: 10026555 10007778 0 0

  • python 数据清洗之数据合并、转换、过滤、排序

    前面我们用pandas做了一些基本的操作,接下来进一步了解数据的操作, 数据清洗一直是数据分析中极为重要的一个环节. 数据合并 在pandas中可以通过merge对数据进行合并操作. import numpy as np import pandas as pd data1 = pd.DataFrame({'level':['a','b','c','d'], 'numeber':[1,3,5,7]}) data2=pd.DataFrame({'level':['a','b','c','e'], '

  • python数组过滤实现方法

    本文实例讲述了python数组过滤实现方法.分享给大家供大家参考.具体如下: 这段代码可以按照指定的条件过滤数组内的元素,返回过滤后的数组 li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"] print [elem for elem in li if len(elem) > 1] pr

  • 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.fi

  • 基于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]

  • Python中列表元素转为数字的方法分析

    本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: numbers = [1, 5, 10, 8] 用一个循环来解决: new_numbers = []; for n in numbers: new_numbers.append(int(n)); numbers = new_numbers; 有没有更简单的语句可以做到呢? 1. numbers =

  • python判断字符串是否纯数字的方法

    本文实例讲述了python判断字符串是否纯数字的方法.分享给大家供大家参考.具体如下: 判断的代码如下,通过异常判断不能区分前面带正负号的区别,正则表达式可以根据自己需要比较灵活的写,通过isdigit方法用来判断是否是纯数字,测试代码如下 复制代码 代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- a = "1" b = "1.2" c = "a" #通过抛出异常 def is_num_by_exc

  • Python随机生成手机号、数字的方法详解

    本文实例讲述了Python随机生成手机号.数字的方法.分享给大家供大家参考,具体如下: Python随机产生手机号.数字.代码如下: # -*- coding:gbk -*- import random #随机产生26个手机号:以13开头,后面跟一位4~9之间的任意一位数字,后面是8位随机数字 for _ in range(26): print('13' + str(random.randrange(4,10))+ ''.join( str(random.choice(range(10))) f

  • python逆序打印各位数字的方法

    如下所示: # -*- coding: utf-8 -*- # raw_input获取给定的一个不多于5位的正整数. # 一.求它是几位数: # 二.逆序打印出各位数字. def f(n): m = map(int, n) print "该数为%d位数"%len(m) m.reverse() for i in m: print i, if __name__=="__main__": n=raw_input("请输入一个多位数的正整数:") f(n

  • python如何保证输入键入数字的方法

    要求:python写一个要求用户输入数字,如果不是数字就一直循环要求输入,直到输入数字为止的代码 错误打开方式: while True: ten=input('Enter a number:') if type(eval(ten))==type(int):break 用这个输入字母可以可是输入字母就直接报错中断了 主要出在eval上. python3.0 第一个方案: while True: ten=input("x:") try: x=eval(ten) if type(x)==in

  • python将字符串转换成json的方法小结

    最近在工作中遇到了一个小问题,如果要将字符串型的数据转换成dict类型,我第一时间就想到了使用json函数.但是里面出现了一些问题 1.通过json来转换: In [1]: import json In [2]: mes = '{"InsId": 2, "name": "lege-happy", "CreationTime": "2019-04-23T03:18:02Z"}' In [3]: mes_to_

  • python中csv文件的若干读写方法小结

    如下所示: //用普通文本文件方式打开和操作 with open("'file.csv'") as cf: lines=cf.readlines() ...... //用普通文本方式打开,用csv模块操作 import csv with open("file.csv") as cf: lines=csv.reader(cf) for line in lines: print(line) ...... import csv headers=['id','usernam

随机推荐