Python实用技法第6篇:让字典保持有序

作者: IT派森 | 来源:发表于2019-08-05 16:16 被阅读2次

1、需求🙀

我们想创建一个字典,同时当对字典做迭代或序列化操作时,也能控制其中元素的顺序。

2、解决方案😸

要控制字典中元素的顺序,可以使用collections模块中的OrderedDict类。当对字典做迭代时,它会严格按照元素初始添加的顺序进行。

from collections import OrderedDict

d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4

#根据插入删除输出
for key in d:
    print(key,d[key])

结果:

a 1
b 2
c 3
d 4

当想构建一个映射结构以便稍后对其做序列化或编码成另一种格式时,OrderedDict就显得特别有用。例如:如果想在进行JSON编码时精确控制各字段的顺序,那么只要首先在OrderedDict中构建数据就可以了:

from collections import OrderedDict
import json

d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4

j=json.dumps(d)
print(j)

结果:

{"a": 1, "b": 2, "c": 3, "d": 4}
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

OrderedDict内部维护了一个双向链表,它会根据元素加入的顺序来排列键的位置。第一个新加入的元素被放置在链表的末尾,接下来对已存在的键做重新赋值,不会改变键的位置。

请注意:OrderedDict的大小是普通字典的2倍。这是由于它额外创建的链表所致。因此,如果打算构建一个涉及大量OrderedDict实例的数据结构(例如从CSV文件中读取100 000行行内容到OrderedDict列表中),那么需要认证对应用做需求分析,从而判断使用OrderedDict所带来的好处是否能超越因额外的内存开销所带来的缺点。

相关文章

  • Python实用技法第6篇:让字典保持有序

    1、需求? 我们想创建一个字典,同时当对字典做迭代或序列化操作时,也能控制其中元素的顺序。 2、解决方案? 要控制...

  • python笔记--(1)--[有序字典的创建]

    python中使用有序字典:

  • Python字典有序和无序

    字典的无序是指数据存进字典的顺序跟取出字典的顺序不一致 Python2的字典是无序的 那如何保持字典有序呢?使用O...

  • 直接上代码

    python 3.7 以后字典都是有序的

  • python有序字典

    python的内建函数dict 是无序字典,如果想要字典有序使用 collections下的OrderedDict...

  • python(有序字典)

    案例 某编程竞赛系统,对参赛选手编程解题进行计时,选手完成题目后,把该选手解题时用时记录到字典中,以便赛后按选手名...

  • python有序字典

    最近的django开发中用到了有序字典,所以研究了一下,以下。 示例: 有序字典和通常字典类似,只是它可以记录元素...

  • 如何让字典保持有序

    实际案例 某编程竞赛系统,对参赛选手编程解题进行计时,选手完成题目后,把该选手解题用时记录到字典中,以便赛后按选手...

  • 如何让字典保持有序

    问题某编程竞赛系统,对于参赛选手解题情况进行计时。选手完成题目后,就将该选手解题用时记录到字典中,以便赛后按选手名...

  • 如何让字典保持有序?

    实际案例: 某编程竞赛系统,对参赛选手编程解题进行计时,选手完成题目后,把该选手解题用时记录到字典中,以便赛后按选...

网友评论

    本文标题:Python实用技法第6篇:让字典保持有序

    本文链接:https://www.haomeiwen.com/subject/miyorctx.html