python OrderedDict 详解

有序字典:OrderedDict 函数实例解释
参考:python中OrderedDict的使用

import collections
'''OrderedDict()建立有序字典'''
mydict = collections.OrderedDict()
mydict[1]=10
mydict[2]=20
mydict[3]=30
print(mydict)  # OrderedDict([(1, 10), (2, 20), (3, 30)])

"""pop() 弹出指定key值"""
p1 = mydict.pop(1)
print(p1)  # 10
p2 = mydict.pop('a',default='no_val')
print(p2)  # no_val
print(mydict)  # OrderedDict([(2, 20), (3, 30)])
'''
popitem(last=True) last出去,根据LIFO原则,后进先出
popitem(last=False) last不出去,根据FIFO原则,先进先出
'''
mydict[100]=1000
mydict[200]=2000
print(mydict)  # OrderedDict([(2, 20), (3, 30), (100, 1000), (200, 2000)])
mydict.popitem(last=True)
print(mydict)  # OrderedDict([(2, 20), (3, 30), (100, 1000)])
mydict.popitem(last=False)
print(mydict)  # OrderedDict([(3, 30), (100, 1000)])

"""
move_to_end(key,last=true) 根据key值,把此(key,value)挪到最后
move_to_end(key,last=False) 根据key值,把此(key,value)挪到最前
"""
mydict[300] = 3000
mydict.move_to_end(100)
print(mydict)  # OrderedDict([(3, 30), (300, 3000), (100, 1000)])
mydict.move_to_end(300,last=False)
print(mydict)  # OrderedDict([(300, 3000), (3, 30), (100, 1000)])

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

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

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

"""del 按照key删除元素"""
del x[222]
print(x) # OrderedDict([(333, 110), (444, 110)])
发布了135 篇原创文章 · 获赞 5 · 访问量 7095

猜你喜欢

转载自blog.csdn.net/qq_27921205/article/details/104456585