新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
python正確字符串處理(自己踩過的坑)-創(chuàng)新互聯(lián)
不管是誰,只要處理過由用戶提交的調(diào)查數(shù)據(jù),就能明白這種亂七八糟的數(shù)據(jù)是怎么一回事。為了得到一組能用于分析工作的格式統(tǒng)一的字符串,需要做很多事情:去除空白符、刪除各種標點符號、正確的大寫格式等。做法之一是使用內(nèi)建的字符串方法和正則表達式re模塊:
一般寫法
states = [' Alabama ', 'Georgia!', 'Georgia', 'georgia', 'FlOrIda',
'south carolina##', 'West virginia?']
import re
def clean_strings(strings): # 一般對數(shù)據(jù)的處理步驟
result = []
for value in strings:
value = value.strip()
value = re.sub('[!#?]', '', value)
value = value.title()
result.append(value)
return result
In [173]: clean_strings(states)
Out[173]:
['Alabama',
'Georgia',
'Georgia',
'Georgia',
'Florida',
'South Carolina',
'West Virginia']
推薦寫法
def remove_punctuation(value):
return re.sub('[!#?]', '', value)
clean_ops = [str.strip, remove_punctuation, str.title] # 函數(shù)也是對象
def clean_strings(strings, ops):
result = []
for value in strings:
for function in ops:
value = function(value)
result.append(value)
return result
In [175]: clean_strings(states, clean_ops)
Out[175]:
['Alabama',
'Georgia',
'Georgia',
'Georgia',
'Florida',
'South Carolina',
'West Virginia']
# 或者
In [176]: for x in map(remove_punctuation, states): #
.....: print(x)
Alabama
Georgia
Georgia
georgia
FlOrIda
south carolina
West virginia
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁名稱:python正確字符串處理(自己踩過的坑)-創(chuàng)新互聯(lián)
地址分享:http://fisionsoft.com.cn/article/hspjj.html