python3 有序字典

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 有序字典相关的知识,希望对你有一定的参考价值。

查看帮助文档:

技术分享

可以发现,所谓有序字典,是记录了插入顺序

技术分享

很显示 ,最后字典的顺序就是你插入键值对的顺序

方法介绍:(OD,代表字典名,点后面为方法)

OD.clear(), 清除所有键值对

OD.copy(), 浅拷贝

OD.fromkeys(s), 从s中得到key,如果不指定默认值,那么默认情况下会填充为None

#!/usr/bin/env python
#coding:utf-8
#@Author:Andy

from collections import OrderedDict
d = OrderedDict()
d = d.fromkeys([‘a‘, ‘z‘, ‘c‘], 2) # here set the default value as 2 if not it‘s None

print(d.items())

 技术分享

OD.items(),以集合的形式显示字典的键值对,如上图

OD.move_to_end()

from collections import OrderedDict
d = OrderedDict()
d = d.fromkeys([‘a‘, ‘z‘, ‘c‘], 2)
d.move_to_end(‘a‘, last=True)
print(d)  # OrderedDict([(‘z‘, 2), (‘c‘, 2), (‘a‘, 2)])
# 注意,只有当键存在时才有效,否则会报错

 当last设置为False时, 字典本身没有变化。

OD.pop(k,d) ; 此方法有返回值,它移除指定的键,返回该键对应的值。当键k不存在时,如果指定了d,也返回d,如果没有指定,则报错。

OD.popitem(): 返回并移除指定的键值对,键值对返回的顺序是:当last=True, 为先进后出,如果last=False,则先进先出。

OD.setdefault(k,d): 当字典中没有键k时,设置OD[k]=d

OD.values(): 返回字典值的对象

 OD.update(E): 将E字典或者可迭代对象更新到OD中,可以指定keys方法,如果指定了keys()方法,作用相当于:for k in E D[k] = E[k]

    当没有指定keys()方法时,则相当于for k,v in E D[k] = E[k]

 


以上是关于python3 有序字典的主要内容,如果未能解决你的问题,请参考以下文章

python实现字典遍历稳定有序使用collection包OrderedDict

发现一个秘密:既python3.6之后字典竟然变成了有序集合,我再次验证了一下!

Python中的字典到底是有序的吗

使用有序字典作为有序集

python3的OrderedDict

是否可以交换有序字典的两个键?