python中函数是对象。
states = [' Alavabama','Frorgia!','Grorgia','georgia','FlorIda','south caeolina##','West virginia?']
为了使这些数据整齐,可用于分析,,可以结合标准库中的正则表达式模块re来进行数据清洗:
import re
def clean_strings(strings):
result = []
for value in strings:
value = value.strip() #去掉头部和尾部的空格字符串制表符
value = re.sub('[!#?]', '', value)
value = value.title() #每个单词第一个字母大写其他小写
result.append(value)
return result
结果如下:
states = [' Alavabama','Frorgia','Grorgia','Georgia','FlorIda','South Caeolina','West Virginia']
另一个有用的实现将特定的列表操作应用到某个字符串的集合上:
def remove_punctuation(value):
return re.sub('[!#?]', '', value)
clean_ops = [str.strip, remove_punctuation, str.title]
def clean_strings(strings, ops)
result = []
for value in strings:
for functionin in ops:
value = function(value)
result.append(value)
return result
clean_strings(states,clean_ops)#返回结果 :
states = [' Alavabama','Frorgia','Grorgia','Georgia','FlorIda','South Caeolina','West Virginia']
这种更为函数化的模式可以使你在更高层次上方便的修改字符串变换方法。clean_strings 函数现在也具有更强的复用性和通用性。
可以将函数作为一个参数传递给其他其他的函数,比如内建的map函数,可以将一个函数应用到一个序列上:
for x in map(remove_punctuation, states):
print(x)#将符号去掉再分别打赢