Dynadot Jtti 华纳云 搬瓦工 腾讯云

Python 有序字典 OrderedDict 和无序字典 Dict

GigsGigsCloud

Python 默认的字典是无序的,如果我们需要让他变成有序,很简单,使用有序字典即可,会按照添加顺序自动排序,先添加的在前面,后添加的在后面。Python 中有一个 OrderedDict,刚好就是实现这个功能的,下面进行介绍 Python 有序字典 OrderedDict。

一、Python 普通字典 Dict

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)

输出:

money 80
girl Tailand
age 26
hourse None
name lowman

可以看到,输出并不是按照添加顺序的。

二、Python 有序字典 OrderedDict

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)

输出:

name lowman
age 45
money 998
hourse None

注意:有序字典的作用只是记住元素插入顺序并按顺序输出。如果有序字典中的元素一开始就定义好了,后面没有插入元素这一动作,那么遍历有序字典,其输出结果仍然是无序的,因为缺少了有序插入这一条件,所以此时有序字典就失去了作用,所以有序字典一般用于动态添加并需要按添加顺序输出的时候。

比如:

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

原文链接:https://www.cnblogs.com/lowmanisbusy/p/10257360.html

官方文档:https://docs.python.org/zh-cn/3/library/collections.html#collections.OrderedDict

Dynadot Hostwinds
赞(1)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Python 有序字典 OrderedDict 和无序字典 Dict
文章链接:https://oldtang.com/2400.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。