首先,为什么要用有序字典?
个人感觉有3个好处
1)取值的时候不用遍历,比list列表快捷,高效。
2)又有顺序,比普通的字典更好管理。
3)可以开头取出,结尾取出,有队列的优点,又可以按key取值,比队列方便实用。
有序字典的顺序是你插入时候的顺序
不是自动排序,
import heapq
import numpy as np
if __name__ == '__main__':
import collections
dic = collections.OrderedDict()
dic[1] = 'v1'
dic[3] = 'v3'
dic[4] = 'v3'
dic[2] = 'v2'
for k, v in dic.items():
print( k, v)
popitem()是取最后一条数据,最新插入的:
if __name__ == '__main__':
import collections
dic = collections.OrderedDict()
dic[3] = 'v3'
dic[4] = 'v4'
dic[2] = 'v2'
dic[1] = 'v1'
print(dic)
#最新插入的,最后一条
print(dic.popitem())
dic[8] = 'v8'
#最先插入的,第1条
print(dic.popitem(last=False))
结果是2,v2
获取长度:
print(len(dic))
再看几个例子:
dd = {"banana": 3, "apple":4, "pear": 1, "orange": 2}
#按key排序
kd = collections.OrderedDict(sorted(dd.items(), key=lambda t: t[0]))
print kd
#按照value排序
vd = collections.OrderedDict(sorted(dd.items(),key=lambda t:t[1]))
print vd
#输出
OrderedDict([("apple", 4), ("banana", 3), ("orange", 2), ("pear", 1)])
OrderedDict([("pear", 1), ("orange", 2), ("banana", 3), ("apple", 4)])
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/jacke121/article/details/121234075
内容来源于网络,如有侵权,请联系作者删除!