日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

自定义函数变量的设置(*/**),lambda匿名函数(map/filter/zip/enumerate)

發(fā)布時(shí)間:2024/9/30 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义函数变量的设置(*/**),lambda匿名函数(map/filter/zip/enumerate) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自定義函數(shù)變量的設(shè)置

一個(gè)星號(hào)
*傳入元組,且這個(gè)變量為可變變量
兩個(gè)星號(hào)
**后的那些參數(shù)被當(dāng)做字典類型傳遞到函數(shù)中
帶有雙星號(hào)的可變參數(shù)只能出現(xiàn)在參數(shù)列表的最后
注意雙星號(hào)是字典類型(字典形式要有鍵值對(duì))

>>>def d(a,b=6,*c,**d):print("a=",a,"b=",b,"c=",c,"d=",d) >>>d(1,2,3,4) a= 1 b= 2 c= (3, 4) d= {} >>>def d(a,b=6,*c,**d):print("a=",a,"b=",b,"c=",c,"d=",d) >>>d(a=1,b=2,c=3) a= 1 b= 2 c= () d= {'c': 3}

不能重復(fù)賦值

#對(duì)b二次賦值報(bào)錯(cuò) >>>def d(a,b=6,*c,**d):print("a=",a,"b=",b,"c=",c,"d=",d) >>>d(1,2,3,4,b=1) TypeError: d() got multiple values for argument 'b'

強(qiáng)制命名參數(shù)

>>>def aaa(*,a,b,c):return a+b+c >>>aaa(a=1,b=1,c=1) 3

強(qiáng)制命名必須用命名來傳遞值

>>>def aaa(*,a,b,c):return a+b+c >>>aaa(a=1,1,1) SyntaxError: positional argument follows keyword argument#報(bào)錯(cuò)

lambda匿名函數(shù)

函數(shù)名 = lambda 參數(shù):表達(dá)式

等價(jià)于

def 函數(shù)名(參數(shù)):
函數(shù)體
return 返回值
!!! lambda不允許包含復(fù)合語(yǔ)句,只可以包含一個(gè)表達(dá)式

map函數(shù)

map(function(函數(shù)),iterable,…(一個(gè)或多個(gè)序列))

>>>def square(x):return x**2 >>>map(square,[1,2,3,4,5]) # 生成迭代器 <map at 0x2c5f1526860>

需要轉(zhuǎn)換

>>>def square(x):return x**2 >>>list(map(square,[1,2,3,4,5])) [1, 4, 9, 16, 25]

結(jié)合lambda

>>>map(lambda x:x**2,[1,2,3,4,5]) <map at 0x2c5f1526cf8> >>>list(map(lambda x:x**2,[1,2,3,4,5])) [1, 4, 9, 16, 25]

filter函數(shù)

filter(function(判斷函數(shù)),iterable(可迭代對(duì)象))
留下True,過濾False
判斷函數(shù):只能接受一個(gè)參數(shù),且返回值是True或False
可迭代對(duì)象:直接調(diào)filter函數(shù)只返回迭代器,需要用list()或其他函數(shù)來轉(zhuǎn)換,但在for循環(huán)中可以直接使用

zip函數(shù)

zip(seq[,seq,…])
可把兩個(gè)或多個(gè)序列中的相應(yīng)項(xiàng)合并在一起
以元組的格式返回它們
在處理完最短序列中的所有項(xiàng)后停止

>>>a = [1,2,3] >>>b = [4,5,6] >>>list(zip(a,b)) #返回元組列表 [(1, 4), (2, 5), (3, 6)] #返回字典類型 >>>dict(zip([1,2],[3,4])) {1: 3, 2: 4} #zip(*...)為還原 >>>a = [1,2,3] >>>b = [4,5,6] >>>list(zip(*zip(a,b))) [(1, 2, 3), (4, 5, 6)]

enumerate函數(shù)

用于將一個(gè)可遍歷的數(shù)據(jù)編號(hào)

>>>s = ['a','b','c','d'] >>>list(enumerate(s)) #默認(rèn)從0開始 [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')] >>>list(enumerate(s,start = 1)) #可以設(shè)定從1或其他數(shù)字開始 [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]

總結(jié)

以上是生活随笔為你收集整理的自定义函数变量的设置(*/**),lambda匿名函数(map/filter/zip/enumerate)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。