zoukankan      html  css  js  c++  java
  • Python 有序字典简介

    有序字典-OrderedDict简介

    示例

    有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。参见下面的例子:

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

    运行结果如下:

    -> python test7.py
    Regular dictionary:
    a A
    c C
    b B
    e E
    d D
    
    OrderedDict:
    a A
    b B
    c C
    d D
    e E
    

    可以看到通常字典不是以插入顺序遍历的。

    相等性

    判断两个有序字段是否相等(==)需要考虑元素插入的顺序是否相等

    import collections
    
    print 'dict       :',
    d1 = {}
    d1['a'] = 'A'
    d1['b'] = 'B'
    d1['c'] = 'C'
    d1['d'] = 'D'
    d1['e'] = 'E'
    
    d2 = {}
    d2['e'] = 'E'
    d2['d'] = 'D'
    d2['c'] = 'C'
    d2['b'] = 'B'
    d2['a'] = 'A'
    
    print d1 == d2
    
    print 'OrderedDict:',
    
    d1 = collections.OrderedDict()
    d1['a'] = 'A'
    d1['b'] = 'B'
    d1['c'] = 'C'
    d1['d'] = 'D'
    d1['e'] = 'E'
    
    d2 = collections.OrderedDict()
    d2['e'] = 'E'
    d2['d'] = 'D'
    d2['c'] = 'C'
    d2['b'] = 'B'
    d2['a'] = 'A'
    
    print d1 == d2
    

    运行结果如下:

    -> python test7.py
    dict       : True
    OrderedDict: False
    

    而当判断一个有序字典和其它普通字典是否相等只需判断内容是否相等。

    注意

    OrderedDict 的构造器或者 update() 方法虽然接受关键字参数,但因为python的函数调用会使用无序的字典来传递参数,所以关键字参数的顺序会丢失,所以创造出来的有序字典不能保证其顺序。

    参考资料

  • 相关阅读:
    魔兽登录系统
    航班信息查询预订
    第六章
    嵌套.
    嵌套
    Mysql
    第二章
    Java
    HTML-表格-列表-结构标记-表单
    HTML语言
  • 原文地址:https://www.cnblogs.com/nisen/p/6087587.html
Copyright © 2011-2022 走看看