由於python的函式是物件,很多在其他語言中比較難的構造在python中非常容易實現,例如在資料清洗中,我們需要將一些變形應用到下列字串列表中:
data = ['alabama','georgia!','georgia','georgia','florida',
'south carolina##','west virginia?']
為了使這些資料整齊、可用於分析,有很多事情需要做:去除空格,移去標點符號,調整適當的大小寫。有兩種方法可以清洗,種方式是使用內建的字串方法,結合標準庫中的正規表示式模組re:
import re
def clean_strings(strings):
result =
for value in strings:
value = value.strip()
value = re.sub('[!#?]','',value)
value = value.title()
return result
結果如下:
clean_strings(data)
['alabama',
'georgia',
'georgia',
'georgia',
'florida',
'south carolina',
'west virginia']
還有另外一種方法會讓你覺得有用的實現就是將特定的列表操作應用到某個字串的集合上:
def a_data(value):
return re.sub('[!#?]','',value)
clean_ops = [str.strip, a_data, str.title]
def clean_s(strings,ops):
result =
for value in strings:
for function in ops:
value = function(value)
return result
結果如下:
clean_s(data,clean_ops)
['alabama',
'georgia',
'georgia',
'georgia',
'florida',
'south carolina',
'west virginia']
像這種更為函式化的模式可以使你在更高層次上方便地修改字串變換方法。clean_strings函式現在也具有更強的復用性和通用性。
當然你也可以將函式作為乙個引數傳給其他的函式,比如內建的map函式,可以將乙個函式應用到乙個序列上:
for data_a in map(a_data,data):
print(data_a)
alabama
georgia
georgia
georgia
florida
south carolina
west virginia
下一節將介紹匿名函式。 python的函式二
返回值 就是函式執 以後返回的結果。可以通過return來指定函式的返回值。return後面跟什麼值,函式就會返回什麼值。return後 可以跟任意物件,返回值甚 可以是 個函式。deffn deffn2 print haha return fn2 r fn print r fn2 at 0x000...
python函式實驗 Python中的函式
一 定義 1 def函式名 引數 2 3 4 函式體5 6 返回值 函式的定義主要有如下要點 def 表示函式的關鍵字 函式名 函式的名稱,日後根據函式名呼叫函式,用引號標記即可 函式體 函式中進行一系列的邏輯計算,如 傳送郵件 計算出 11,22,38,888,2 中的最大數等.引數 為函式體提供...
python中的lo函式 Python 函式
函式 內建函式 print input len type print hello world 函式 引數 定義函式 def greet name print name 早上好 return 第一行def的意思是定義 define greet是 函式名 自己取的 再搭配乙個括號和冒號,括號裡面的nam...