collections
三、defaultdict: 有默认值的字典
在字典中获取一个key有两种方法
第一种get
第二种通过[]获取.
使用dict时,如果引用的key不存在,就会抛出KeyError。
如果希望key不存在时,返回一个默认值,就可以用defaultdict。
from collections import defaultdict
d = defaultdict(int)
print(d['a'])
d = defaultdict(list)
print(d['a'])
d = defaultdict(set)
print(d['a'])
d = defaultdict(dict)
print(d['a'])
print("---------------------------")
arr = [('yellow', 1), ('blue', 3), ('gray', 5), ('black', 7),('red', 9)]
brr = defaultdict(int)
for n, m in arr:
brr[n] = m
print(brr)
print(brr['gray'])
print(brr['6'])
print("---------------------------")
arr = [('yellow', 1), ('blue', 3), ('yellow', 5), ('blue', 7),('red', 9)]
brr = defaultdict(list)
for n, m in arr:
brr[n].append(m)
print(brr)
print(brr['yellow'])
print(brr['6'])
print("-----------------------------")
arr = [('yellow', 1), ('blue', 3), ('yellow', 5), ('blue', 7),('red', 9)]
brr = {}
for n, m in arr:
if n not in brr.keys():
brr[n] = []
brr[n].append(m)
print(brr)
#print(brr['6'])
输出
0
[]
set()
{}
---------------------------
defaultdict(<class 'int'>, {'yellow': 1, 'blue': 3, 'gray': 5, 'black': 7, 'red': 9})
5
0
---------------------------
defaultdict(<class 'list'>, {'yellow': [1, 5], 'blue': [3, 7], 'red': [9]})
[1, 5]
[]
-----------------------------
{'yellow': [1, 5], 'blue': [3, 7], 'red': [9]}
四、OrderedDict: 有序字典
key按照插入的顺序排序,与字典基本一致
popitem()函数python3.7以上版本删除最后一个元素返回
OrderedDict: 可以指定参数last,last默认为True,删除最后一个。False删除第一个。
from collections import OrderedDict
arr = [('red', 1), ('blue', 3), ('gray', 5)]
brr = OrderedDict(arr)
print(brr)
while len(brr) != 0:
print("删除的元素: ",brr.popitem())
print("删除后的的brr: ", brr)
print("------------------------")
arr = [('red', 1), ('blue', 3), ('gray', 5)]
brr = OrderedDict(arr)
print(brr)
while len(brr) != 0:
print("删除的元素: ",brr.popitem(False))
print("删除后的的brr: ", brr)
print("------------------------")
arr = [('red', 1), ('blue', 3), ('gray', 5)]
brr = OrderedDict(arr)
print(brr)
while len(brr) != 0:
print("删除的元素: ",brr.popitem(True))
print("删除后的的brr: ", brr)
print("----------------------")
arr = [('red', 1), ('blue', 3), ('gray', 5)]
brr = dict(arr)
print(brr)
while len(brr) != 0:
print("删除的元素: ",brr.popitem())
print("删除后的的brr: ", brr)
输出
OrderedDict([('red', 1), ('blue', 3), ('gray', 5)])
删除的元素: ('gray', 5)
删除后的的brr: OrderedDict([('red', 1), ('blue', 3)])
删除的元素: ('blue', 3)
删除后的的brr: OrderedDict([('red', 1)])
删除的元素: ('red', 1)
删除后的的brr: OrderedDict()
------------------------
OrderedDict([('red', 1), ('blue', 3), ('gray', 5)])
删除的元素: ('red', 1)
删除后的的brr: OrderedDict([('blue', 3), ('gray', 5)])
删除的元素: ('blue', 3)
删除后的的brr: OrderedDict([('gray', 5)])
删除的元素: ('gray', 5)
删除后的的brr: OrderedDict()
------------------------
OrderedDict([('red', 1), ('blue', 3), ('gray', 5)])
删除的元素: ('gray', 5)
删除后的的brr: OrderedDict([('red', 1), ('blue', 3)])
删除的元素: ('blue', 3)
删除后的的brr: OrderedDict([('red', 1)])
删除的元素: ('red', 1)
删除后的的brr: OrderedDict()
----------------------
{'red': 1, 'blue': 3, 'gray': 5}
删除的元素: ('gray', 5)
删除后的的brr: {'red': 1, 'blue': 3}
删除的元素: ('blue', 3)
删除后的的brr: {'red': 1}
删除的元素: ('red', 1)
删除后的的brr: {}
move_to_end(key, last=True)函数
from collections import OrderedDict
arr = [('red', 1), ('blue', 3), ('gray', 5)]
brr = OrderedDict(arr)
print(brr)
brr.move_to_end('red')
print("将red移动到右端", brr)
brr.move_to_end('gray',False)
print("将gray移动到左端", brr)
brr.move_to_end('blue',True)
print("将blue移动到右端", brr)
输出
OrderedDict([('red', 1), ('blue', 3), ('gray', 5)])
将red移动到右端 OrderedDict([('blue', 3), ('gray', 5), ('red', 1)])
将gray移动到左端 OrderedDict([('gray', 5), ('blue', 3), ('red', 1)])
将blue移动到右端 OrderedDict([('gray', 5), ('red', 1), ('blue', 3)])
标签:blue,gray,OrderedDict,Python,brr,蓝桥,collections,print,red
From: https://blog.csdn.net/2301_76430784/article/details/140819439