Python 有序字典(OrderedDict)与 普通字典(dict)

Python 的基础数据类型中的字典类型分为:无序字典 与 有序字典 两种类型spa

1.无序字典(普通字典):code

my_dict = dict()
my_dict["name"] = "lowman"
my_dict["age"] = 26
my_dict["girl"] = "Tailand"
my_dict["money"] = 80
my_dict["hourse"] = None
for key, value in my_dict.items(): 
  print(key, value)

输出:blog

money 80
girl Tailand
age 26
hourse None
name lowman

能够看见,遍历一个普通字典,返回的数据和定义字典时的字段顺序是不一致的。it

 

2.有序字典io

import collections

my_order_dict = collections.OrderedDict()
my_order_dict["name"] = "lowman"
my_order_dict["age"] = 45
my_order_dict["money"] = 998
my_order_dict["hourse"] = None
for key, value in my_order_dict.items(): print(key, value)

输出:class

name lowman
age 45
money 998
hourse Noneimport

有序字典能够按字典中元素的插入顺序来输出。基础

 

注意:遍历

  有序字典的做用只是记住元素插入顺序并按顺序输出。若是有序字典中的元素一开始就定义好了,后面没有插入元素这一动做,那么遍历有序字典,其输出结果仍然是无序的,由于缺乏了有序插入这一条件,因此此时有序字典就失去了做用,因此有序字典通常用于动态添加并须要按添加顺序输出的时候。数据类型

 

以下面这个列子:

import collections

my_order_dict = collections.OrderedDict(name="lowman", age=45, money=998, hourse=None)

for key, value in my_order_dict.items():
    print(key, value)

输出:

hourse None
age 45
money 998
name lowman

发现输出仍是无序的,由于在定义有序字典的同时也定义了初始值,没有存在按序添加的操做,因此有序字典是没有记录插入字段的顺序,最后遍历时,获得数据的顺序仍然是无序的。

相关文章
相关标签/搜索