国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python里面有幾個(gè)有趣的函數(shù)

開(kāi)發(fā) 后端
今天主要是分享5個(gè)python內(nèi)置的小函數(shù),都是個(gè)人覺(jué)得強(qiáng)大而精致的幾個(gè)函數(shù)。不是高深的知識(shí),純粹因?yàn)橛X(jué)得好用而分享。

 眾所周知,python功能強(qiáng)大、語(yǔ)法靈活,這些得益于其豐富而強(qiáng)大的庫(kù)。除了眾多第三方庫(kù)和方法函數(shù),python自帶的很多函數(shù)也非常有趣,用起來(lái)稱(chēng)得上優(yōu)雅。




?[[320251]]?


今天主要是分享5個(gè)python內(nèi)置的小函數(shù),都是個(gè)人覺(jué)得強(qiáng)大而精致的幾個(gè)函數(shù)。不是高深的知識(shí),純粹因?yàn)橛X(jué)得好用而分享。

01 一用而過(guò):lambda

很多語(yǔ)言都有匿名函數(shù),python的匿名函數(shù)寫(xiě)作lambda,當(dāng)需要實(shí)現(xiàn)一定功能而又不想“大張旗鼓”的def一個(gè)函數(shù)時(shí),lambda就是最優(yōu)的選擇。

其語(yǔ)法格式一般是這樣的:


lambda x:x**2
# <function __main__.<lambda>(x)>

也可以將它賦值給一個(gè)變量,由于python中一切皆對(duì)象,所以后續(xù)程序中就可以用該變量調(diào)用這個(gè)匿名函數(shù)。


f = lambda x:x**2
f(2)
# 4

當(dāng)然,這里其實(shí)沒(méi)必要應(yīng)用lambda來(lái)實(shí)現(xiàn),因?yàn)榧热灰@式調(diào)用,還不如干脆直接寫(xiě)個(gè)明確的函數(shù)罷了。lambda函數(shù)更廣泛的應(yīng)用場(chǎng)景在于該匿名函數(shù)作為另一個(gè)函數(shù)的參數(shù)傳遞時(shí),應(yīng)用就比較合適了,例如,將lambda作為sort()函數(shù)的key參數(shù),就可以實(shí)現(xiàn)特定功能的排序。


dyct = {'a':2, 'b':1, 'c':5}
sorted(dyct.items(), key = lambda x:x[1])
# [('b', 1), ('a', 2), ('c', 5)]

02 智能解壓:zip

zip函數(shù)人如其名,是打包或者解包的函數(shù),接受2個(gè)以上可迭代變量,輸出對(duì)應(yīng)位置組成元組后的迭代類(lèi)型。例如:


a = ['a', 'b', 'c']
b = (4, 5, 6)
zip(a,b)
# <zip at 0x1da016d15c8>
list(zip(a,b))
# [('a', 4), ('b', 5), ('c', 6)]
tuple(zip(a,b))
# (('a', 4), ('b', 5), ('c', 6))

也可以接受多于2個(gè)輸入可迭代變量,而且如果各迭代變量長(zhǎng)度不一致也不會(huì)報(bào)錯(cuò),只是此時(shí)返回迭代變量取決于輸入總長(zhǎng)度最短的一個(gè)。例如:


a = ['a', 'b', 'c', 'd', 'e']
b = (4, 5, 6, 7)
c = [True, False, True]
list(zip(a,b,c))
# (('a', 4, True), ('b', 5, False), ('c', 6, True))

與zip打包相對(duì)應(yīng)的用法是解包,即對(duì)一個(gè)打包形式的元素進(jìn)行依次解包,并返回多個(gè)新的列表。例如:


aZip = (('a', 4, True), ('b', 5, False), ('c', 6, True))
a, b, c = zip(*aZip)
# a:('a', 'b', 'c')
# b:(4, 5, 6)
# c:(True, False, True)

03 一一映射:map

map函數(shù)也正如其取名一樣,是一個(gè)將接受的迭代變量依次經(jīng)過(guò)某種映射,并輸出映射后的迭代變量。例如,如果對(duì)列表中的某個(gè)變量依次完成求值,并返回一個(gè)新的列表,則可以應(yīng)用map:


a = [1, 2, 3, 4]
map(str, a)
# <map at 0x1da017136d8>
list(map(str, a))
# ['1', '2', '3', '4']

這是map函數(shù)的一個(gè)典型用法:接受2個(gè)參數(shù),第一個(gè)參數(shù)(上例中是str()函數(shù))是一個(gè)要作用的函數(shù),第二個(gè)參數(shù)是可迭代變量。

當(dāng)?shù)谝粋€(gè)函數(shù)的參數(shù)是是一個(gè)多變量函數(shù)時(shí),map也可以接受更多的參數(shù)。例如:


a = [1, 2, 3, 4]
b = [2, 2, 3, 3]
list(map(lambda x, y:x**y, a, b))
# [1, 4, 27, 64]

與zip函數(shù)中類(lèi)似,當(dāng)map里的函數(shù)參數(shù)長(zhǎng)度不匹配時(shí)并不會(huì)報(bào)錯(cuò),只是輸出結(jié)果將由最短的決定:


a = [1, 2, 3, 4]
b = [2, 2]
list(map(lambda x, y:x**y, a, b))
# [1, 4]

04 一夫當(dāng)關(guān):filter

與map函數(shù)類(lèi)似,filter函數(shù)也接受一個(gè)函數(shù)及其變量作為參數(shù),只是要求這個(gè)函數(shù)的返回結(jié)果是bool型,并用這個(gè)bool的結(jié)果決定輸出的取舍問(wèn)題。例如需要對(duì)一個(gè)輸入列表過(guò)濾,要求保留3的倍數(shù):


a = range(10)
filter(lambda x:x%3==0, a)
# <filter at 0x1da0171c0f0>
list(filter(lambda x:x%3==0, a))
# [0, 3, 6, 9]

這里需注意,當(dāng)filter的第一個(gè)函數(shù)返回值不是bool型時(shí)不會(huì)報(bào)錯(cuò),只是它會(huì)轉(zhuǎn)化為bool型判斷,如果判斷結(jié)果不是False(python中會(huì)判為False的變量包括0、None、[]等等),則會(huì)將其輸出,否則過(guò)濾掉:


a = range(10)
list(filter(lambda x:x%3, a))
# [1, 2, 4, 5, 7, 8]

05 萬(wàn)劍歸宗:reduce

map和filter函數(shù)都是多入多出型,實(shí)質(zhì)上是完成了特定的變換或篩選。reduce則是歸約函數(shù),將一系列輸入變量經(jīng)過(guò)特定的函數(shù)后轉(zhuǎn)化為一個(gè)結(jié)果輸出。不過(guò)可能是由于應(yīng)用場(chǎng)景有限的原因,reduce在python3中已不再是全局調(diào)用函數(shù),必須要從functools包中導(dǎo)入方可使用:


from functools import reduce
a = range(5)
reduce(lambda x, y: x+y, a)
# 10

reduce函數(shù)還可以接受一個(gè)可選的初始值作為參數(shù)。應(yīng)用reduce函數(shù)可以實(shí)現(xiàn)很多小trick,就看能不能想的到用的出:


from functools import reduce
s = 'abcdefg'
reduce(lambda x, y: y+x, s, 'AA')
# 'gfedcbaAA'

06 最后

當(dāng)然,盡管幾個(gè)函數(shù)用法不可謂不優(yōu)美、功能不可謂不強(qiáng)大,但都不是必須的,甚至某種程度上都可以用其他形式加以替代,例如map和filter函數(shù)都可以用列表推導(dǎo)式來(lái)簡(jiǎn)單實(shí)現(xiàn),reduce函數(shù)功能也頂多用一個(gè)for循環(huán)迭代就能解決。

但在致力于使python程序變得更加簡(jiǎn)潔優(yōu)雅乃至耍秀的路上,這些函數(shù)也確有其用武之地,未嘗不值得一試!

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2018-05-07 15:32:54

編程語(yǔ)言Python程序員

2023-03-13 08:47:06

CSS數(shù)學(xué)函數(shù)

2021-10-14 06:52:47

算法校驗(yàn)碼結(jié)構(gòu)

2022-03-30 09:01:37

CSS屬性函數(shù)

2014-01-22 09:46:42

JavaScript數(shù)組

2016-12-21 09:35:55

JavaScript原生數(shù)組函數(shù)

2021-11-04 09:55:59

代碼編程語(yǔ)言

2020-07-29 10:00:38

PythonEllipsis索引

2022-10-10 23:19:02

Python腳本語(yǔ)言工具庫(kù)

2017-08-08 16:04:30

Python圖片處理文章提取器

2023-11-08 10:12:40

架構(gòu)函數(shù)元素

2017-07-12 16:45:10

Docker概念鏡像

2022-01-23 14:08:52

PythonPygame

2022-12-28 08:59:11

2023-11-30 07:37:49

MySQL函數(shù)

2011-05-23 17:29:29

JS

2009-06-19 11:03:30

Java Web函數(shù)

2021-06-05 23:39:52

c++函數(shù)場(chǎng)景

2024-03-12 10:36:06

函數(shù)指針代碼

2010-07-17 01:03:13

CMD Telnet
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产91高潮流白浆在线麻豆| 国产直播在线| 日本成人看片网址| 中文字幕亚洲专区| 在线一区二区视频| 久久午夜老司机| 亚洲一区一卡| 先锋影音国产精品| 一区二区三区电影大全| 日韩精品一二| 成人黄色一区二区| 日韩精品一区二区三区色偷偷| 91成人免费观看网站| 精品一区二区三区电影| 日韩欧美中文字幕在线播放| 久久综合成人精品亚洲另类欧美| 亚洲少妇自拍| 国语产色综合| 高清一区二区中文字幕| 污的网站在线观看| 亚洲52av| 99热热99| 国产男女免费视频| 日本在线观看一区| 91色精品视频在线| 97人人模人人爽人人喊中文字| 亚洲精品第一国产综合精品| 色婷婷综合久久久中文一区二区 | 日本亚洲欧洲无免费码在线| 免费a级毛片在线播放| 国产美女被遭强高潮免费网站| 日本福利视频一区| 午夜老司机精品| 国产美女精品在线观看| 国产成人在线一区| 欧美黄色片视频| 国产一区二区美女视频| 精品精品国产高清一毛片一天堂| 欧美午夜电影在线| 综合久久国产九一剧情麻豆| 99久久er热在这里只有精品66| 奇米一区二区三区| 亚洲天堂男人| 国产精品久久久久9999赢消| 成人动漫在线播放| 粉嫩av一区二区三区在线播放| 欧美精品粉嫩高潮一区二区| 成人黄色网页| 国产亚洲综合视频| 中文字幕黄色大片| 国产专区一区二区三区| 国产在线a不卡| 欧美在线视频观看| 欧美日韩国产成人在线观看| 中文字幕免费国产精品| 日韩精品黄色网| 日韩欧美一二三四区| 欧美日韩精品三区| 欧美日韩免费一区| 亚洲国产成人91porn| 亚洲精品免费在线观看| 国产精品视频你懂的| 国产午夜三级一区二区三| 99这里只有精品| 成人深夜在线观看| 国产精品18久久久| 国产成人av一区二区三区在线 | 色综合久久88色综合天天看泰| 亚洲女人初尝黑人巨大| 日韩精品视频在线| 亚洲精品白浆高清久久久久久| 欧美不卡视频一区| 亚洲第一男人天堂| 日韩精品亚洲视频| 国产亚洲成av人片在线观看桃| 国产亚洲一级高清| 自拍偷拍免费精品| 久久成年人视频| 久久久亚洲国产天美传媒修理工| 欧美精品精品精品精品免费| 午夜精品久久久久久久久久久久久 | 91麻豆免费在线观看| 久久日一线二线三线suv| 久久美女艺术照精彩视频福利播放 | 国产精品永久免费视频| 成人午夜两性视频| 国产厕所精品在线观看| 精品不卡在线| 日韩欧美亚洲日产国产| 日本丰满少妇黄大片在线观看| 国产女主播自拍| 青青草原成人网| 午夜网站在线观看| 永久www成人看片| 麻豆av电影在线观看| 国产区在线观看| 伊人久久在线| 精品一区二区三区亚洲| 香蕉视频一区二区三区| 一区二区三区在线| 日韩在线播放一区二区| 国产成人三级在线观看| 国产网红主播福利一区二区| 亚洲精品乱码久久久久久黑人| 一本大道久久a久久综合| 欧美一级黄色片| 这里只有视频精品| 91精品91久久久久久| 91精品美女在线| 欧美精品一区二区三区在线四季 | 亚洲五月六月| 337p粉嫩大胆噜噜噜鲁| 免费视频二区| 最新97超碰在线| 三妻四妾的电影电视剧在线观看 | 精品视频全国免费看| 精品国产乱码久久久久久免费| 亚洲色图综合久久| 高清欧美一区二区三区| 91亚洲国产成人精品性色| 日本一区不卡| 黄色动漫在线免费看| 97福利网站在线观看视频| 免费在线视频欧美| 神马电影网我不卡| 九九热精品视频在线观看| 亚洲激精日韩激精欧美精品| 激情综合亚洲精品| 国产欧美一区二区三区网站| 日韩欧美第一页| 日韩精品中文字| 日本高清+成人网在线观看| av日韩免费电影| 成人一区二区av| 美女在线一区| 毛片在线网址| 窝窝社区一区二区| 久久亚洲欧洲| 国产精品你懂的在线欣赏| 欧美日韩成人在线一区| 欧美成人高清视频| 成人欧美一区二区| 激情深爱综合网| 欧美3p视频在线观看| 高清av一区二区三区| 99久久99久久精品国产片桃花 | 欧美午夜免费| 日韩网址在线观看| 国产在线视频资源| 日韩欧美三区| 一区二区亚洲| 久久久久久久久久久久久夜| 欧美日韩卡一卡二| 久久久久久网站| 日韩精品一区二区三区外面| 窝窝九色成人影院| 欧美1234区| 欧美理论在线播放| 国产成人亚洲综合色影视| 黑人巨大精品欧美一区二区免费 | 欧美一区二区三区四区久久| 国内精品久久影院| 亚洲一二三区在线| 黄动漫在线看| 国内欧美日韩| 99精品福利视频| 国产精品视频免费| 日韩av在线播放资源| 国产精品一区二区久久精品| 日本香蕉视频在线观看| 九色在线视频蝌蚪| 国产精品视频3p| 久久97超碰国产精品超碰| 精品国产91久久久久久老师| 久热精品视频在线观看| 日本一区二区在线| а√最新版地址在线天堂| 国产国产一区| 日精品一区二区三区| 亚洲高清不卡在线观看| 久久久国产精品一区| 日韩欧美在线电影| 天堂av在线播放| 99精品国产一区二区三区2021 | 久久精品30| 亚洲综合视频在线| 久久精品视频亚洲| 亚洲看片网站| 狠狠v欧美ⅴ日韩v亚洲v大胸| 另类在线视频| aa级大片欧美| 337p日本欧洲亚洲大胆色噜噜| 91免费视频网站| av男人的天堂网| 男女啪啪999亚洲精品| 另类成人小视频在线| 欧美嫩在线观看| 亚洲一区二区自拍| 日本一二三区视频免费高清| 日韩中文字幕视频网|