首頁/ 時尚/ 正文

Python匿名函式,你會了嘛

Python匿名函式,你會了嘛

@Author:By Runsen

@Date:2019年07月13日

之前寫的,最近決定把之前的回顧,寫詳細。

1。1 lambda 函式

1。2 函數語言程式設計

2。1 map

2。2 filter

2。3 reduce

3。1 如何根據值來排序

1、匿名函式

匿名函式不需要顯示地定義函式名,使用【lambda + 引數 +表示式】的方式

1。1 lambda 函式

lambda 函式的形式

lambda argument1, argument2,。。。 argumentN : expression

套入函式,使用lambda

square = lambda x: x**2square(3)9

lambda 返回的一個函式物件

注意:lambda 和def 的區別

lambda 是一個表示式,def 是一個語句

[(lambda x: x*x)(x) for x in range(10)]# 輸出[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

lambda 可以用作函式的引數,def 不能

l = [(1, 20), (3, 0), (9, 10), (2, -1)]

l。sort(key=lambda x: x[1]) # 按列表中元祖的第二個元素排序

print(l)# 輸出[(2, -1), (3, 0), (9, 10), (1, 20)]

lambda 是隻有一行的簡單表示式

squared = map(lambda x: x**2, [1, 2, 3, 4, 5])

如果不用lambda ,你用def就需要多寫好多行

def square(x):

return x**2

squared = map(square, [1, 2, 3, 4, 5])

在tkinter 中實現的簡單功能

Python匿名函式,你會了嘛

Python匿名函式,你會了嘛

主要你按壓就出現being pressed

你用def就是下面的樣子

Python匿名函式,你會了嘛

使用def 要寫好多行,多定義一個函式

1。2 函數語言程式設計

函數語言程式設計是指程式碼每一塊都是不可變的,都是由純函式的組成

這裡的純函式 值函式本身相互獨立,對於相同的輸入都有相同的輸出

傳入一個列表將列表的元素變為原來的2倍

Python匿名函式,你會了嘛

純函式的形式,應該在函數里面定義一個新的列表

2、其他函式

對於純函式python 提供了幾個函式

2。1 map

map 函式的形式

( function ,iterable )

第一個引數是函式的物件,第二個是一個可迭代物件

l = [1, 2, 3, 4, 5]new_list = map(lambda x: x * 2, l) list(new_list)# [2, 4, 6, 8, 10]

2。2 filter

filter通常對一個集合做g過濾的操作

l = [1, 2, 3, 4, 5]new_list = filter(lambda x: x % 2 == 0, l)list(new_list) # [2, 4]

2。3 reduce

reduce通常對一個集合做累積的操作

import functoolsl = [1, 2, 3, 4, 5]product = functools。reduce(lambda x, y: x * y, l) product# 1*2*3*4*5 = 120

3、思考題

3。1 如何根據值來排序

d = {‘mike’: 10, ‘lucy’: 2, ‘ben’: 30}

sorted(d。items(),key=lambda x:x[1],reverse=True)

注意 reduce在3中已經放進functools模組中了

Python匿名函式,你會了嘛

相關文章

頂部