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