电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python 中Operator模塊的使用

瀏覽:4日期:2022-06-28 16:54:00

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

1 計算函數

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

首先使用 lambda 方式來實現:

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

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

reduce() 函數中的 function 使用 lambda 表達式。第二個入參 iterable 使用 range() 方法來生成。

接著使用 Operator 模塊中的 mul 函數來實現階乘:

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

相對來說,使用 Operator 模塊中的計算函數,代碼更加簡潔。

從源碼上分析,mul 函數就是計算兩個入參的乘積:

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

Operator 模塊內部還定義了很多類似的計算函數,比如:

Python 中Operator模塊的使用

2 過濾函數

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

首先介紹 itemgetter 函數。假設定義了一個 f 函數,f = itemgetter(2),那么如果調用 f(r),實際會返回 r[2]。也就是說,傳入的入參 r,最終返回的只是 r 的索引值為 2 (從 1 開始計算)那一部分。

itemgetter 函數應用場景是:根據元組的某個字段對元組列表進行排序。比如我們有一段 JSON 格式的城市數據,需要對其簡稱進行排序:

from operator import itemgettermetro_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)

運行結果:

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))

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

如果傳入 itemgetter 的入參不止一個,那么它就是一個過濾函數,只把需要的列過濾出來。

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

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

運行結果:

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模塊的使用的詳細內容,更多關于Python 中Operator模塊的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 热处理温控箱,热处理控制箱厂家-吴江市兴达电热设备厂 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 盐城网络公司_盐城网站优化_盐城网站建设_盐城市启晨网络科技有限公司 | 氢氧化钾厂家直销批发-济南金昊化工有限公司 | 冷油器-冷油器换管改造-连云港灵动列管式冷油器生产厂家 | 日本SMC气缸接头-速度控制阀-日本三菱伺服电机-苏州禾力自动化科技有限公司 | 北京模型公司-军事模型-工业模型制作-北京百艺模型沙盘公司 | 数控走心机-走心机价格-双主轴走心机-宝宇百科 | 武汉宣传片制作-视频拍摄-企业宣传片公司-武汉红年影视 | 艺术生文化课培训|艺术生文化课辅导冲刺-济南启迪学校 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 不锈钢反应釜,不锈钢反应釜厂家-价格-威海鑫泰化工机械有限公司 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 北京百度网站优化|北京网站建设公司-百谷网络科技 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 云阳人才网_云阳招聘网_云阳人才市场_云阳人事人才网_云阳人家招聘网_云阳最新招聘信息 | 流量卡中心-流量卡套餐查询系统_移动电信联通流量卡套餐大全 | 必胜高考网_全国高考备考和志愿填报信息平台 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | 电机保护器-电动机综合保护器-浙江开民| 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 防堵吹扫装置-防堵风压测量装置-电动操作显示器-兴洲仪器 | 最新电影-好看的电视剧大全-朝夕电影网 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 北京发电机出租_发电机租赁_北京发电机维修 - 河北腾伦发电机出租 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 热处理炉-退火炉-回火炉设备厂家-丹阳市电炉厂有限公司 | MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 |