描述:
關鍵字 lambda 定義的函數
語法:python
函數名 = lambda 參數:返回值
返回值:
函數返回結果值函數
實例:spa
一個參數的匿名函數:code
func = lambda x: x*x f = func(2) print(f) # 執行結果: # 4
多個參數的匿名函數:對象
func = lambda x, y: x+y f = func(1, 2) print(f) # 執行結果: # 3
(1)mapblog
描述:
map()會根據提供的函數對指定序列作映射。
第一個參數 function 以參數序列中的每個元素調用 function 函數,返回包含每次 function 函數的返回值的新列表
語法:排序
map(function, iterable, ...)
參數:
function -- 函數
iterable -- 一個或多個序列
返回值:
python 2.X 返回列表
python 3.X 返回迭代器ip
實例:it
提供兩個列表,對相同位置的列表數據進行相加io
(2)reduce
描述:
對參數序列中的元素進行累積,效果以下:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
語法:
reduce(function, iterable[, initializer])
參數:
function -- 函數,有兩個參數
iterable -- 可迭代對象
initializer -- 可選,初始參數
返回值:
返回函數計算結果
實例:
結合匿名函數+高階函數的使用:
from functools import reduce r = reduce(lambda x, y: x + y, [1,2,3,4,5]) print(r) # 執行結果: # 15
(3)filter
描述:
python內建的 filter() 函數用於過濾序列
語法:
filter()接收一個函數和一個序列,filter()把傳入的函數依次做用於每一個元素,而後根據返回值是 True 仍是 False 決定保留仍是丟棄該元素
實例:
去掉list中的偶數,只保留奇數
l = [1,2,3,4,5,6,7, 8, 9] def is_odd(n): return n % 2 == 1 f = filter(is_odd, l) print(list(f)) # 執行結果: # [1, 3, 5, 7, 9]
練習:
回數是指從左到右讀和從右到左讀都是同樣的數,例如:12321,909 請利用 filter() 篩選出回數
def is_palindrome(n): hx = str(n) # 首先將參數轉換爲str類型 if hx == hx[::-1]: # 若是從左到右,從右到左都相等,則返回回數 return hx
(4)sorted
描述:
sorted() 函數對全部可迭代的對象進行排序操做。
sort 和 sorted 區別:
sort 是應用在 list 上的方法,sorted能夠對全部可迭代的對象進行排序操做。
list 的 sort 方法返回是對已經存在的列表進行操做,無返回值,而內建函數sorted 方法返回的是一個新的list,而不是在原來的基礎上進行的操做
語法:
sorted(iterable[, cmp[, key[, reverse]]])
key: 主要用來進行比較的元素,只有一個參數,具體的函數的參數就是取自與可迭代對象中,指定可迭代對象中的一個元素來進行排序。
reverse:默認排序規則是升序排序, reverse=True 則降序排序
返回值:
返回從新排序的列表
實例:
比較數字
In [1]: sorted([36, 5, -12, 9, -21]) Out[1]: [-21, -12, 5, 9, 36]
定義key函數,使用絕對值進行排序
In [2]: sorted([36, 5, -12, 9, -21], key=abs) Out[2]: [5, 9, -12, -21, 36]
定義key函數,使用絕對值進行降序排序
In [3]: sorted([36, 5, -12, 9, -21], key=abs, reverse=True) Out[3]: [36, -21, -12, 9, 5]
(5)zip
描述:
zip()函數用於將可迭代的對象做爲參數,將對象中對應的元素打包成一個個元組,而後返回由這些元組組成的列表
若是各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用 * 號操做符,能夠將元組解壓爲列表。
語法:
zip([iterable, ...])
iterable: 一個或多個迭代器
返回值:
返回元組列表
實例:
In [10]: a = [1,2,3] In [11]: b = [4,5,6] In [12]: list(zip(a, b )) Out[12]: [(1, 4), (2, 5), (3, 6)] #以最短的列表做爲組合的結尾 In [13]: a = [1,2,3,4,5] In [14]: b = [1,2] In [15]: list(zip(a, b )) Out[15]: [(1, 1), (2, 2)]