zoukankan      html  css  js  c++  java
  • 字典排序

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # Created by xuehz on 2017/2/23
    
    from collections import 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)
    
    """
    
    Regular dictionary:
    c C
    d D
    b B
    a A
    e E
    可以看到通常字典不是以插入顺序遍历的。
    
    
    OrderedDict:
    a A
    b B
    c C
    d D
    e E
    """
    
    d = OrderedDict()
    d['foo'] = 1
    d['bar'] = 2
    d['spam'] = 3
    d['grok'] = 4
    # Outputs "foo 1", "bar 2", "spam 3", "grok 4"
    
    print(d)
    #OrderedDict([('foo', 1), ('bar', 2), ('spam', 3), ('grok', 4)])
    
    for key in d:
        print(key, d[key])
    
    import json
    print(json.dumps(d)) #{"foo": 1, "bar": 2, "spam": 3, "grok": 4}
    
    
    """
    OrderedDict 内部维护着一个根据键插入顺序排序的双向链表。
    每次当一个新的元素插入进来的时候, 它会被放到链表的尾部。对于一个已经存在的键的重复赋值不会改变键的顺序。
    
    一个 OrderedDict 的大小是一个普通字典的两倍
    """
    
  • 相关阅读:
    盒子的display属性
    html标签默认属性值之margin;padding值
    JS事件
    表单序列化
    2016年最后一天——前端心语
    原生JS--COOKIE
    原生JS--Ajax
    DOM,BOM
    JS面向对象
    RegExp类型,单体内置对象
  • 原文地址:https://www.cnblogs.com/xuehaozhe/p/6436350.html
Copyright © 2011-2022 走看看