Python實現簡易過濾刪除數字的方法

2022-06-06 11:39:10 字數 2138 閱讀 9415

如果想從乙個含有數字,漢字,字母的列表中濾除僅含有數字的字元,當然可以採取正規表示式來完成,但是有點太麻煩了,因此可以採用乙個比較巧妙的方式:

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.

python簡易實現k means

用dist存放所有資料到中心的距離,有n行 n組資料 k 1列 前k列分別存放到第i個類中心的距離,最後一列存放分到了第幾類 usr bin env python coding utf 8 import numpy as np n 100 x np.arange 100 y np.arange 20...

Python實現簡易Socket

客戶端 向服務端傳送資訊和接收服務端返回的資訊 import socket flag true client socket.socket client.connect localhost 8080 連線服務埠 while flag msg input strip 獲取要傳送的資訊 if len ms...

python刪除資料框空行 Python刪除空行

我現在建立了乙個包含大量非結構化資料的資料庫。我的資料庫通過excel表獲取資料,但excel表中包含一些我不想在資料庫中包含的空行 ee77 kk12 到目前為止,程式將停止空白行開始 ee77 但我想要ff888 88和gg121的資料。這是我的 from src.server.connectt...