• 技术文章 >Python技术 >Python基础教程

    OrderedDict在python字典的实现

    小妮浅浅小妮浅浅2021-02-24 16:43:04原创3593

    1、OrderedDict 的 popitem 方法

    这个类型在添加键的时候会保持顺序,因此键的迭代次序总是一致的。OrderedDict 的 popitem 方法默认删除并返回的是字典里的最后一个元素,但是如果像 my_odict.popitem(last=False) 这样调用它,那么它删除并返回第一个被添加进去的元素。

    move_to_end(key, last=True) 将现有 key 移至有序字典的末尾。如果 last=True(默认),则 item 移动到右侧,如果 last=False,则移动到开始。如果 key 不存在,则引发 KeyError:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    In [1]: from collections import OrderedDict

      

    In [2]: d = OrderedDict.fromkeys('abcde')

      

    In [3]: d.move_to_end('b')

      

    In [4]: ''.join(d.keys())

    Out[4]: 'acdeb'

      

    In [5]: d.move_to_end('b', last=False)

      

    In [6]: ''.join(d.keys())

    Out[6]: 'bacde'

    2、与 sorted 结合

    由于 OrderedDict 会记住它的插入顺序,因此它可以与 sorted 结合使用来创建一个排序后的字典:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    In [11]: d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}

    # 根据 key 排序

    In [12]: OrderedDict(sorted(d.items(), key=lambda t:t[0]))

    Out[12]: OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])

    # 根据 value 排序

    In [13]: OrderedDict(sorted(d.items(), key=lambda t:t[1]))

    Out[13]: OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])

    # 根据 key 的长度排序

    In [14]: OrderedDict(sorted(d.items(), key=lambda t: len(t[0])))

    Out[14]: OrderedDict([('pear', 1), ('apple', 4), ('banana', 3), ('orange', 2)])

    以上就是OrderedDict在python字典的实现,希望能对大家有所帮助,更多知识尽在python学习网。

    专题推荐:python ordereddict
    上一篇:python对列表进行永久性或临时排序的方法 下一篇:Python如何捕获正在运行的CMD窗口内容?

    相关文章推荐

    • python线程中deque如何使用?• python列表运算详解• python添加列表元素的多种方法• Counter在python中两种用法• python对列表进行永久性或临时排序的方法

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网