python高階函數和匿名函數

來源:互聯網
上載者:User

標籤:高階函數   匿名函數   

高階函數

允許將函數本身作為參數傳入另一個函數;允許返回一個函數。允許返回一個函數。

map()函數

map的第一個參數為自訂函數,第二個參數為自訂可迭代對象

例子

#定義一個函數f2求平方,使用map函數,求list1的值的平方,list1平方規則按照f2函數執行,返回結果類型為list。

list1 = [1, 2, 3, 4, 5,]

def f2(x):

    return x*x 

list2 = map(f2, list1)

print type(list2)

print list2

reduce()函數

必須接收兩個參數,最多接收三個參數。

例子

#定義一個函數f求和,使用reduce函數,求list1相加的值,再加20。list1相加規則按照f函數執行,先執行1+2,再用1+2的值與3相加,以此類推

list1 = [1, 2, 3, 4, 5,]

def f(x, y):

    return x+y

print reduce(f,list1,20)

filter()函數

會將可迭代對象元素傳入,如果返回true則保留,如果返回false則不保留元素

例子:

a = [1, 2, 3, 4, 5, 6, 7]

def f(x):

    return x%2 == 1

b = list(filter(f,a))

#python3.5.1需要將filter轉換為list再進行輸出

print (b)

sorted()函數

可以針對所有的可迭代對象進行排序,返回一個新的list

使用方法:

sorted(...)  

    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

cmp:有兩個參數,參數的值都是從可迭代對象中取出,此函數的規則:大於返回1,小於返回-1,等於返回0

key:具體的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素進行排序

reverse:判斷是否反轉,預設情況下不反轉

例子

dic1 = {‘Q‘:7, ‘W‘:8, ‘E‘:9}

print(dic1)

for key, value in dic1.items():

    print(key, value)

d = sorted(dic1.items())

print(d)

匿名函數

不需要顯示定義的函數,沒有名字的函數

例子

def f2(x,y):

    return x+y

等於

c = lambda x1,y1:x1+y1

print(c(4,5))

例子

def build(x2, y2):

    return lambda: x2 * x2 + y2 * y2


本文出自 “粗糧麵包” 部落格,請務必保留此出處http://culiangmianbao.blog.51cto.com/10475024/1978589

python高階函數和匿名函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.