好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識(shí)庫 > Python 中Operator模塊的使用

Python 中Operator模塊的使用

熱門標(biāo)簽:如何申請400電話代理 天津塘沽區(qū)地圖標(biāo)注 智能電話機(jī)器人調(diào)研 地圖標(biāo)注可以遠(yuǎn)程操作嗎 滴滴地圖標(biāo)注公司 江門智能電話機(jī)器人 甘肅高頻外呼系統(tǒng) 400電話在線如何申請 杭州房產(chǎn)地圖標(biāo)注

Python 中的 Operator 模塊可以讓它支持函數(shù)式編程。

1 計(jì)算函數(shù)

假設(shè)我們需要一個(gè)計(jì)算階乘的函數(shù),一般做法是使用遞歸。如果使用函數(shù)式編程,可以有兩種方式,一種 lambda,另一種使用 Operator 模塊中的算術(shù)函數(shù)。我們做個(gè)比較。

首先使用 lambda 方式來實(shí)現(xiàn):

from functools import reduce
def fact(n):
  return reduce(lambda a, b: a * b, range(1, n + 1))

這里用到了 reduce 方法,reduce() 函數(shù)語法:reduce(function, iterable[, initializer])。其中的 function 函數(shù)有兩個(gè)參數(shù)。reduce() 函數(shù)會(huì)先對集合中的第 1、2 個(gè)元素進(jìn)行 function 函數(shù)處理,得到的結(jié)果再與第三個(gè)元素進(jìn)行 function 函數(shù)處理,最后得到一個(gè)結(jié)果1。

reduce() 函數(shù)中的 function 使用 lambda 表達(dá)式。第二個(gè)入?yún)?iterable 使用 range() 方法來生成。

接著使用 Operator 模塊中的 mul 函數(shù)來實(shí)現(xiàn)階乘:

from operator import mul
def factWithMul(n):
  return reduce(mul, range(1, n + 1))

相對來說,使用 Operator 模塊中的計(jì)算函數(shù),代碼更加簡潔。

從源碼上分析,mul 函數(shù)就是計(jì)算兩個(gè)入?yún)⒌某朔e:

def mul(a, b):
  "Same as a * b."
  return a * b

Operator 模塊內(nèi)部還定義了很多類似的計(jì)算函數(shù),比如:

2 過濾函數(shù)

operator 模塊中還有一類函數(shù)能夠起到條件過濾的作用。

首先介紹 itemgetter 函數(shù)。假設(shè)定義了一個(gè) f 函數(shù),f = itemgetter(2),那么如果調(diào)用 f(r),實(shí)際會(huì)返回 r[2]。也就是說,傳入的入?yún)?r,最終返回的只是 r 的索引值為 2 (從 1 開始計(jì)算)那一部分。

itemgetter 函數(shù)應(yīng)用場景是:根據(jù)元組的某個(gè)字段對元組列表進(jìn)行排序。比如我們有一段 JSON 格式的城市數(shù)據(jù),需要對其簡稱進(jìn)行排序:

from operator import itemgetter

metro_areas = [('Tokyo', 'JP', 36.933, (35.689722, 139.691667)), ('Delhi NCR', 'IN', 21.935, (28.613889, 77.208889)),
        ('Mexico City', 'MX', 20.142, (19.433333, -99.133333)),
        ('New York-Newark', 'US', 20.104, (40.808611, -74.020386)),
        ('Sao Paulo', 'BR', 19.649, (-23.547778, -46.635833)),
        ]
for city in sorted(metro_areas, key=itemgetter(1)):
  logging.info('city -> %s', city)

運(yùn)行結(jié)果:

INFO - city -> ('Sao Paulo', 'BR', 19.649, (-23.547778, -46.635833))
INFO - city -> ('Delhi NCR', 'IN', 21.935, (28.613889, 77.208889))
INFO - city -> ('Tokyo', 'JP', 36.933, (35.689722, 139.691667))
INFO - city -> ('Mexico City', 'MX', 20.142, (19.433333, -99.133333))
INFO - city -> ('New York-Newark', 'US', 20.104, (40.808611, -74.020386))

城市數(shù)據(jù)數(shù)組中的每一個(gè)元素,拆分來看,就是元組形式。 itemgetter 函數(shù)取出元組的第二個(gè)值作為 sorted 函數(shù)的排序依據(jù)。

如果傳入 itemgetter 的入?yún)⒉恢挂粋€(gè),那么它就是一個(gè)過濾函數(shù),只把需要的列過濾出來。

比如我們只需要城市數(shù)組中的城市簡稱與所在坐標(biāo),就可以這么做:

cc_name = itemgetter(1, 3)
for city in metro_areas:
logging.info('city -> %s', cc_name(city))

運(yùn)行結(jié)果:

INFO - city -> ('JP', (35.689722, 139.691667))
INFO - city -> ('IN', (28.613889, 77.208889))
INFO - city -> ('MX', (19.433333, -99.133333))
INFO - city -> ('US', (40.808611, -74.020386))
INFO - city -> ('BR', (-23.547778, -46.635833))

以上就是Python 中Operator模塊的使用的詳細(xì)內(nèi)容,更多關(guān)于Python 中Operator模塊的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python利用operator模塊實(shí)現(xiàn)對象的多級(jí)排序詳解
  • Python中operator模塊的操作符使用示例總結(jié)
  • python函數(shù)enumerate,operator和Counter使用技巧實(shí)例小結(jié)

標(biāo)簽:東莞 河池 漢中 德宏 廊坊 重慶 臨汾 長春

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python 中Operator模塊的使用》,本文關(guān)鍵詞  Python,中,Operator,模塊,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python 中Operator模塊的使用》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python 中Operator模塊的使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 男人添女人下部高潮全视频 | 啊灬啊灬啊灬快灬大水啊灬游戏| 韩国三级无码中文字幕电影她| 色综合久久综合网观看| GOGO熟女少妇人体大尺度免费| 韩漫画无遮羞免费网| 51精品视频免费国产专区| 国产精品伦一区二区三区在线播放| 人妻被黑人猛烈进入A片| 全肉一女n男np高h乳| 欧美三级视频网| 日本护士xxxx黑人巨大| 殴美男男gayvideos| 精人妻无码一区二区三区苍井空| 欧美疯狂做爰XXXⅩOOO| 国模浓密大尺度| 联合早报南略网中文网首页| 美女靠逼网站| 天天做天天爱天天综合网2021 | 女神思瑞精品一区二区| 成年午夜福利片在线观看| 911色_911色sss在线观看| 下载黄色片| 成人精品久久| 亚洲AV秘?无码一区坂井成羽| 色戒2小时38分未删减版| 真空上课被同桌暴摸好爽小说| 白丝美女胸黄18禁?视频免费| 高清日本片免费观看| 精品元码一区二区久久久久久| 51涩视频福利专区一区二区三区| 操肥妇| 女同性精品| 波多野结衣电影在线免费观看| chineseGay高二勃起| H高潮娇喘抽搐喷潮撒尿男女| 春暖花开亚洲性无区一区二区| 男人天堂影院| japanesehd在线播放国产| 99re6这里有精品热视频| t台透漏服装走秀女|