很多語言都提供了對引數或變數進行處理的機制,作為靈活的python,提供了一些針對函式處理的特殊方法
filter(function, sequence):對sequence中的item依次執行function(item),將執行結果為true的item組成乙個list/string/tuple
map(function, sequence) :對sequence中的item依次執行function(item),見執行結果組成乙個list
reduce(function, sequence, starting_value):對sequence中的item順序迭代呼叫function
sum(sequence):對集合中的元素進行累加
下面針對上面的描述寫乙個簡單的小例子:
複製** **如下:
__author__ = 'administrator'
from functools import reduce
#主要用來掩飾map可以將某個序列中的元素傳遞給某個特殊的函式來處理
def map_demo():
程式設計客棧#定義乙個將字母轉換成大寫的函式
def to_upper(ch):
return str(ch).upper()
#對給定字串中的每個字母應用to_upper函式
print(list(map(to_upper, "asdfasdfuasdlaksdjf".split())))
#主要使用乙個基於布林值得函式對元素進行過濾
def filter_demo():
&nbsxrpdkdlgp; def is_alnum(ch):
return ch.isalnum()
#!se會被過濾掉
test_list = ['sdas', '123d', '!se', '孫阿史蒂芬']
#基於具體函式
print(list(filter(is_alnum, test_list)))
#基於列表推導
print(list(xxrpdkdlg for x in test_list if x.isalnum()))
#基於匿名函式
print(list(filter(lambda x: x.isalnum(), test_list)))
#reduce的主要功能是利用www.cppcns.com列表中的兩個元素迭代呼叫某個函式,最後得到乙個結果
#在python3中要顯示的新增 from functools import reduce
#本例中執行的過程大致是先是xrpdkdlg1+2=3,利用3+4=7,7+4.......
def reduce_demo():
print(reduce(lambda x, y: x + y, range(1, 10)))
#利用sum函式累加列表中的值
def sum_demo():
print(sum(range(10)))
if __name__ == "__main__":
#map_demo()
#filter_demo()
#reduce_demo()
sum_demo()
本文標題: python中針對函式處理的特殊方法
本文位址:
Python中針對函式處理的特殊方法
python中針對函式處理的特殊方法 很多語言都提供了對引數或變數進行處理的機制,作為靈活的python,提供了一些針對函式處理的特殊方法 filter function,sequence 對sequence中的item依次執行function item 將執行結果為true的item組成乙個lis...
針對協議命令字處理函式
我們在處理命令字協議的時候例如以下協議,aa tt 05 06 09 bb 其中aa tt是協議頭,05是命令字 06是資料長度,09是資料內容,bb是協議尾。針對這種協議。我們一般在處理命令字的時候大多數使用的都是switch case進行命令字的處理。但是如果再處理非常多的命令字的時候我們就不得...
資料探勘中針對缺失值的處理
一 缺失值產生的原因 缺失值的產生的原因多種多樣,主要分為機械原因和人為原因。機械原因是由於機械原因導致的資料收集或儲存的失敗造成的資料缺失,比如資料儲存的失敗,儲存器損壞,機械故障導致某段時間資料未能收集 對於定時資料採集而言 人為原因是由於人的主觀失誤 歷史侷限或有意隱瞞造成的資料缺失,比如,在...