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

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

python 中的collections.OrderedDict() 用法

瀏覽:3日期:2022-06-18 13:59:47

Python中的字典對象可以以“鍵:值”的方式存取數據。OrderedDict是它的一個子類,實現了對字典對象中元素的排序。

注意,OrderedDict的 Key 會按照插入的順序排列,不是Key本身排序:

比如下面比較了兩種方式的不同:

import collectionsprint ’Regular dictionary:’d={}d[’a’]=’A’d[’b’]=’B’d[’c’]=’C’for k,v in d.items(): print k,v print ’nOrderedDict:’d=collections.OrderedDict()d[’a’]=’A’d[’b’]=’B’d[’c’]=’C’for k,v in d.items(): print k,v

輸出結果如下:

Regular dictionary:a Ac Cb B OrderedDict:a Ab Bc C

可以看到,同樣是保存了ABC三個元素,但是使用OrderedDict會根據放入元素的先后順序進行排序。

由于進行了排序,所以OrderedDict對象的字典對象,如果其順序不同那么Python也會把他們當做是兩個不同的對象,比如下面的代碼:

import collections print ’Regular dictionary:’d1={}d1[’a’]=’A’d1[’b’]=’B’d1[’c’]=’C’ d2={}d2[’c’]=’C’d2[’a’]=’A’d2[’b’]=’B’ print d1==d2 print ’nOrderedDict:’d1=collections.OrderedDict()d1[’a’]=’A’d1[’b’]=’B’d1[’c’]=’C’ d2=collections.OrderedDict()d2[’c’]=’C’d2[’a’]=’A’d2[’b’]=’B’ print d1==d2

其輸出結果為:

Regular dictionary:True OrderedDict:False

補充:Python collections.OrderedDict解決dict元素順序問題

編程中遇到個問題,python json.loads時元素順序可能會發生變化。

這個對于一些需要使用元素順序來做一些策略的代碼來說是致命的。

在網上查了查,結合自己的知識總結一下。

使用dict時,Key是無序的。在對dict做迭代時,我們無法確定Key的順序。

如果要保持Key的順序,可以用OrderedDict。

OrderedDict的Key會按照插入的順序排列,不是Key本身排序。

#coding=utf-8import jsonimport collectionsmy_dict = {}my_list = ['測試', '1324', 'r4ge5']for i in my_list: my_dict[i] = my_list[my_list.index(i)]print 'str1原串:'str1 = json.dumps(my_dict, ensure_ascii=False)print str1print '對str1字符串進行loads后的結果:'data_js = json.loads(str1)print json.dumps(data_js, ensure_ascii=False).encode('utf8')print '對str1字符串進行loads后的結果(使用OrderedDict):'data_js = json.loads(str1, object_pairs_hook=collections.OrderedDict)print json.dumps(data_js, ensure_ascii=False).encode('utf8')

執行結果:

str1原串:{'測試': '測試', 'r4ge5': 'r4ge5', '1324': '1324'}對str1字符串進行loads后的結果:{'r4ge5': 'r4ge5', '1324': '1324', '測試': '測試'}對str1字符串進行loads后的結果(使用OrderedDict):{'測試': '測試', 'r4ge5': 'r4ge5', '1324': '1324'}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 京港视通报道-质量走进大江南北-京港视通传媒[北京]有限公司 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 杭州翻译公司_驾照翻译_专业人工翻译-杭州以琳翻译有限公司官网 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 | 消泡剂_水处理消泡剂_切削液消泡剂_涂料消泡剂_有机硅消泡剂_广州中万新材料生产厂家 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 膜片万向弹性联轴器-冲压铸造模具「沧州昌运模具」 | 称重传感器,测力传感器,拉压力传感器,压力变送器,扭矩传感器,南京凯基特电气有限公司 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 广州中央空调回收,二手中央空调回收,旧空调回收,制冷设备回收,冷气机组回收公司-广州益夫制冷设备回收公司 | 茅茅虫AI论文写作助手-免费AIGC论文查重_写毕业论文降重 | 济南冷库安装-山东冷库设计|建造|冷库维修-山东齐雪制冷设备有限公司 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 活性炭厂家-蜂窝活性炭-粉状/柱状/果壳/椰壳活性炭-大千净化-活性炭 | 高铝轻质保温砖_刚玉莫来石砖厂家_轻质耐火砖价格 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 济南铝方通-济南铝方通价格-济南方通厂家-山东鲁方通建材有限公司 | 穿线管|波纹穿线管|包塑金属软管|蛇皮管?闵彬专注弱电工程? | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 精密模具加工制造 - 富东懿 | 塑料瓶罐_食品塑料瓶_保健品塑料瓶_调味品塑料瓶–东莞市富慷塑料制品有限公司 | 济南宣传册设计-画册设计_济南莫都品牌设计公司 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 手术示教系统-数字化手术室系统-林之硕医疗云智能视频平台 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 祝融环境-地源热泵多恒系统高新技术企业,舒适生活环境缔造者! | 免费分销系统 — 分销商城系统_分销小程序开发 -【微商来】 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 浇钢砖,流钢砖_厂家价低-淄博恒森耐火材料有限公司 | 浙江栓钉_焊钉_剪力钉厂家批发_杭州八建五金制造有限公司 | 地脚螺栓_材质_标准-永年县德联地脚螺栓厂家 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | FAG轴承,苏州FAG轴承,德国FAG轴承-恩梯必传动设备(苏州)有限公司 | 大型冰雕-景区冰雕展制作公司,3D创意设计源头厂家-[赛北冰雕] | 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 |