编程笔记:python 中的 OrderedDict

python 中的 OrderedDict是字典的一个子类,其内部的元素有顺序关系,会记录元素插入的顺序。两个 OrderedDict 中即使包含的 key-value 对完全相同,但只要它们的顺序不同,程序也依然会判断出两个 OrderedDict 是不相等的.示例如下:

from collections import OrderedDict
print("dict:")
dict={}
# dict=OrderedDict()
dict['a'] = 'A'
dict['b'] = 'B'
dict['c'] = 'C'
print(dict)


print("\ndict1:")
# dict1 = OrderedDict()
dict1={}
dict1['c'] = 'C'
dict1['b'] = 'B'
dict1['a'] = 'A'
print(dict1)


print(dict1==dict)

当 dict={}, dict1={}时,”print(dict1==dict) “输出“True”

当 dict=OrderedDict(), dict1=OrderedDict()时,”print(dict1==dict) “输出“False”

 

由于 OrderedDict 是有序的,因此 Python 为之提供了如下两个方法:

  1. popitem(last=True):默认弹出并返回最右边(最后加入)的 key-value 对;如果将 last 参数设为 False,则弹出并返回最左边(最先加入)的 key-value 对。
  2. move_to_end(key, last=True):默认将指定的 key-value 对移动到最右边(最后加入);如果将 last 改为 False,则将指定的 key-value 对移动到最左边(最先加入)。

示例如下:

from collections import OrderedDict
print("dict:")
dict=OrderedDict()
dict['a'] = 'A'
dict['b'] = 'B'
dict['c'] = 'C'
dict['d'] = 'D'
dict['e'] = 'E'
print(dict)


print("\ndict1:")
dict1 = OrderedDict()
dict1['e'] = 'E'
dict1['d'] = 'D'
dict1['c'] = 'C'
dict1['b'] = 'B'
dict1['a'] = 'A'
print(dict1)


print(dict1==dict)

## OrderedDict.popitem(last=True) : 默认从字典弹出并返回最后一个 key-value 对;
# 如果将 last 参数设为 False,则弹出并返回最左边(最先加入)的 key-value 对。
print(dict.popitem(last=True))
print(dict.popitem(last=True)[0])
print(dict.popitem(last=True)[1])

print(dict.popitem(last=False))

##move_to_end(key, last=True):默认将指定的 key-value 对移动到最右边(最后加入).
# 如果将 last 改为 False,则将指定的 key-value 对移动到最左边(最先加入)。
dict1.move_to_end('a',last=False)
print(dict1)

参考:http://c.biancheng.net/view/2438.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值