python怎麼對數字進行過濾

2022-08-01 11:18:16 字數 2021 閱讀 8179

本文例項總結了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) 中,不需要有序,切記!

例項擴充套件:

crazystring = 'dade142.!0142f[., ]ad'

# 只保留數字

new_crazy = filter(str.isdigit, crazystring)

print(''.join(list(new_crazy))) #輸出:1420142

# 只保留字母

new_crazy = filter(str.isalpha, crazystring)

print(''.join(list(new_crazy))) #睡出:dadefad

# 只保留字母和數字

new_crazy = filter(str.isalnum, crazystring)

print(''.join(list(new_crazy))) #輸出:dade1420142fad

# 如果想保留數字0-9和小數點'.' 則需要自定義函式

new_crazy = filter(lambda ch: ch in '0123456789.', crazystring)

print(''.join(list(new_crazy))) #輸出:142.0142.

上述**執行結果:

1420142 dadefad dade1420142fad 142.0142.

對陣列物件進行過濾

使用的是filter regexp 和test 來實現過濾 filter item,index,arr new regexp pattern,attributes pattern 是乙個字串,指定了正規表示式的模式或其他正規表示式或需要尋找的值。attributes 是乙個可選的字串,包含屬性 g ...

php對資料進行過濾輸出

為了避免跨站指令碼攻擊 xss等安全問題,yii框架對輸出到檢視層的資料提供了一些方法供我們使用,例如 html encode htmlpurifier process,研究了下yii框架的原始碼,將其抽取出來,作為乙個小組件,記起來,以後可以單獨使用 1 首先是 html encode 是使用ph...

flex datagrid點選列對數字進行排序

在要進行排序的列指定排序的方法 sortcomparefunction sortcompare 其中sortcompare是你要進行排序的方法 具體實現如下 按數值大小排序 public function sortcompare obj1 object,obj2 object int else if...