python中OrderedDict的使用

我们都知道dict是没有序的,一维字典按照value值排序可以用sorted(dict.items(), key=lambda x:x[1], reverse = False)

python中直接有’有序字典’OrderedDict可以调用。
下面是一串例子:

'''
建立OrderedDict
'''      
mydict = collections.OrderedDict()
#OrderedDict()

mydict[1] = 10
mydict[2] = 20
mydict['a'] = 30
#OrderedDict([(1, 10), (2, 20), ('a', 30)])

'''
pop() 弹出指定key值
'''
mydict.pop('a')
#OrderedDict([(1, 10), (2, 20)])

'''
popitem(last=True) last出去,根据LIFO原则,后进先出
popitem(last=False) last不出去,根据FIFO原则,先进先出
'''
mydict[100] = 1000
mydict[200] = 2000
mydict.popitem() #last=True
#OrderedDict([(1, 10), (2, 20), (100, 1000)])
mydict.popitem(False) #last=False 
#OrderedDict([(2, 20), (100, 1000)])

'''
move_to_end() 根据key值,把此(key,value)挪到最后
'''
mydict[66]=666
mydict.move_to_end(2)
#OrderedDict([(100, 1000), (66, 666), (2, 20)])

'''
clear() 清空
'''
mydict.clear()
#OrderedDict()

'''
输入一个key值,若无,默认value为None
'''
mydict.setdefault('hello')
#OrderedDict([('hello', None)])
mydict['hello'] = 1
#OrderedDict([('hello', 1)])

'''
fromkeys()通过列表直接创建字典,若无value则为None
注意这里要赋值给新的变量
'''
nums = ['222','223','555']
mydict.fromkeys(nums)
print(mydict)
#OrderedDict([('hello', 1)])

x = mydict.fromkeys(nums)
print(x)
#OrderedDict([('222', None), ('223', None), ('555', None)])

y = mydict.fromkeys(nums,'嘿嘿')
print(y)
#OrderedDict([('222', '嘿嘿'), ('223', '嘿嘿'), ('555', '嘿嘿')])

'''
del 删除
'''
del y['222']
print(y)
#OrderedDict([('223', '嘿嘿'), ('555', '嘿嘿')])
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值