python 基礎 4 3 高階函式下和匿名函式

2022-09-16 07:03:10 字數 1738 閱讀 8852

一 .匿名函式

顧名思議就是沒有名字的函式,那為什麼要設立匿名函式,他有什麼作用呢?lambda 函式就是一種快速定義單行的最小函式,可以用在任何需要函式的地方。

常規版:

def fun(x,y)

return x*y

lambda

示例:/usr/bin/python

#coding=utf-8

#@time :2017/11/2 15:14

#@auther :liuzhenchuan

#@file :高階函式下和匿名函式.py

#匿名函式,就是沒有名字的函式

def sum(x,y):

return x+y

# print sum(4,5)

m = lambda x,y:x+y

print m(4,5)

>>> 9

sorted() 函式

sorted(iterable,cmp=none,key=none,reverse=false)--->new sorted list

對字典進行排序,按照value進行排序

mm =dict(a=1,b=10,c=3,d=9)

作用:返回乙個經過排序的列表

第乙個引數是乙個iterable(可迭代的),返回值是乙個對iterable中元素進行排序後的列表

可選的引數有三個,cmp,key,reverse

1》cmp 指定乙個定製的比較函式,這個函式接收兩個引數(iterable的元素),如果第乙個引數小於第二個引數,返回乙個負數;如果第乙個引數等於第二個引數,返回零;如果第乙個引數大於第二個引數,返回乙個正數,預設值為none。

2》key 指定乙個接收乙個引數的函式,這個函式用於從每個元素中提取乙個用於比較的關鍵字,預設值為none

3》reverse 是乙個布林值,如果設定為true,列表元素將被倒序排列。

示例:#匿名函式,就是沒有名字的函式

def sum(x,y):

return x+y

# print sum(4,5)

m = lambda x,y:x+y

print m(4,5)

print '####列印字典##'

mm=dict(a=1,c=10,b=8,d=5)

print mm

print '#######列印keys########'

for i in mm:

print i

print '########列印keys和values##'

for key,value in mm.iteritems():

print (key,value)

print '#######對keys和values排序############'

#keys 定義匿名函式lambda, d為key 通過d[1]取到value

test=sorted(mm.iteritems(),key=lambda d: d[1])

print test

>>>

####列印字典##

#######列印keys########ac

bd########列印keys和values##

('a', 1)

('c', 10)

('b', 8)

('d', 5)

#######對keys和values排序############

[('a', 1), ('d', 5), ('b', 8), ('c', 10)]

python基礎之高階函式(下)

高階函式是滿足下列條件之一的即為高階函式。高階函式的引入 1 1 定義乙個函式,將指定列表中的偶數,儲存到乙個新的列表中。list list range 1 11,1 deffn a new list for i in list if i 2 0 return new list print fn l...

python基礎 高階函式

把函式作為引數傳入,這樣的函式稱為高階函式,高階函式是函式式程式設計的體現。函式式程式設計就是指這種高度抽象的程式設計正規化。在python中,abs 函式可以完成對數字求絕對值計算。abs 10 10round 函式可以完成對數字的四捨五入計算。round 1.2 1 round 1.9 2def...

Python基礎 高階函式 Map Reduce

map 函式接受2個引數 1.引數 函式 2.引數 iterable 示例 usr bin env python3 coding utf 8 map 函式的使用 轉換為字串 deffuntion x return str x deftest mlist 1,2,3,4,5 list 1,2,3,4,...