Python中針對函數(shù)處理的特殊方法
很多語言都提供了對參數(shù)或變量進(jìn)行處理的機制,作為靈活的Python,提供了一些針對函數(shù)處理的特殊方法
filter(function, sequence): 對sequence中的item依次執(zhí)行function(item),將執(zhí)行結(jié)果為True的item組成一個List/String/Tuple
map(function, sequence) : 對sequence中的item依次執(zhí)行function(item),見執(zhí)行結(jié)果組成一個List
reduce(function, sequence, starting_value): 對sequence中的item順序迭代調(diào)用function
sum(sequence): 對集合中的元素進(jìn)行累加
下面針對上面的描述寫一個簡單的小例子:
__author__ = 'Administrator'
from functools import reduce
#主要用來掩飾map可以將某個序列中的元素傳遞給某個特殊的函數(shù)來處理
def map_demo():
#定義一個將字母轉(zhuǎn)換成大寫的函數(shù)
def to_upper(ch):
return str(ch).upper()
#對給定字符串中的每個字母應(yīng)用to_upper函數(shù)
print(list(map(to_upper, "asdfasdfuasdlaksdjf".split())))
#主要使用一個基于布爾值得函數(shù)對元素進(jìn)行過濾
def filter_demo():
def is_alnum(ch):
return ch.isalnum()
#!se會被過濾掉
test_list = ['sdas', '123d', '!se', '孫阿斯蒂芬']
#基于具體函數(shù)
print(list(filter(is_alnum, test_list)))
#基于列表推導(dǎo)
print(list(x for x in test_list if x.isalnum()))
#基于匿名函數(shù)
print(list(filter(lambda x: x.isalnum(), test_list)))
#reduce的主要功能是利用列表中的兩個元素迭代調(diào)用某個函數(shù),最后得到一個結(jié)果
#在python3中要顯示的添加 from functools import reduce
#本例中運行的過程大致是先是1+2=3,利用3+4=7,7+4.......
def reduce_demo():
print(reduce(lambda x, y: x + y, range(1, 10)))
#利用sum函數(shù)累加列表中的值
def sum_demo():
print(sum(range(10)))
if __name__ == "__main__":
#map_demo()
#filter_demo()
#reduce_demo()
sum_demo()
相關(guān)文章
Python利用PyPDF2庫實現(xiàn)輕松提取PDF文本
ython中的PyPDF2庫是一個非常有用的工具,無論您是需要分析PDF文檔中的內(nèi)容還是需要在文檔中搜索特定的信息,PyPDF2都可以幫助您輕松實現(xiàn)這些任務(wù),下面我們就來學(xué)習(xí)一下如何利用PyPDF2提取PDF文本吧2023-09-09Django實現(xiàn)WebSSH操作物理機或虛擬機的方法
這篇文章主要介紹了Django實現(xiàn)WebSSH操作物理機或虛擬機的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進(jìn)行數(shù)據(jù)分析圖文詳解
這篇文章主要介紹了PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進(jìn)行數(shù)據(jù)分析圖文詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04