#与字典有关的操作
from collections import defaultdict
#字典结构 key:value ,key为关键值,不可重复
#创建字典(list为创建列表字典)
d = defaultdict(list)
d['a'].append(1)
d['a'].append(2)
d['a'].append(3)
d['b'].append(4)
d['b'].append(5)
print(d)
#输出
defaultdict(<class 'list'>, {'a': [1, 2, 3], 'b': [4, 5]})
#set为创建集合字典
d = defaultdict(set)
d['a'].add(1)
d['a'].add(2)
d['a'].add(3)
d['b'].add(4)
d['b'].add(5)
print(d)
#输出
defaultdict(<class 'set'>, {'a': {1, 2, 3}, 'b': {4, 5}})
#花括号创建字典
score = {'数学':99,'英语':85,'语文':95}
print(score)
#输出
{'数学': 99, '英语': 85, '语文': 95}
#花括号创建字典2(注意,此方法创建字典时,key不能是列表形式)
cla = {(20,30):'good',50:'nice',90:'perfect'}
print(cla)
#输出
{(20, 30): 'good', 50: 'nice', 90: 'perfect'}
#创建字典3:利用列表或元组创建key-value对
vegetables = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)]
Vt = dict(vegetables)
print(Vt)
#输出
{'celery': 1.58, 'brocoli': 1.29, 'lettuce': 2.19}
#创建字典4:利用列表或元组创建key-value对
cars = [["BMW",8.5],['BENS',8.3],['AUDI',7.9]]
Car = dict(cars)
print(Car)
#输出
{'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
#创建字典5(利用等式赋值创建字典)
dicts = dict(no1 = 1.9,no2 = 1.1,no3 = 0.9)
print(dicts)
#输出
{'no1': 1.9, 'no2': 1.1, 'no3': 0.9}
##################################################
#字典的基本用法,程序对字典的操作都是基于 key 的,基本操作如下
#通过 key 访问 value
#通过 key 添加 key-value 对
#通过 key 删除 key-value 对
#通过 key 修改 key-value 对
#通过 key 判断指定 key-value 对是否存在
#通过 key 访问 value 使用的也是方括号语法,就像前面介绍的列表和元组一样,只是此时在方括号中放的是 key,而不是列表或元组中的索引
#通过 key 访问 value:
#查询上述字典{'数学': 99, '英语': 85, '语文': 95}中数学的分数
print(score['数学'])
#输出
99
#为字典添加key-valuce对
#在上述字典{'数学': 99, '英语': 85, '语文': 95}中添加'历史':80
score['历史'] = 80
print(score)
#输出
{'数学': 99, '英语': 85, '语文': 95, '历史': 80}
#删除宇典中的 key-value 对
#在上述字典{'数学': 99, '英语': 85, '语文': 95,'历史':80}中删除'数学':99
del score['数学']
print(score)
#输出
{'英语': 85, '语文': 95, '历史': 80}
#在上述字典{英语': 85, '语文': 95,'历史':80}中删除'语文':95
del score['语文']
print(score)
#输出
{'英语': 85, '历史': 80}
# 对存在的key-value对赋值,改变原有的key-value对
#改变上述字典{'英语': 85, '历史': 80},将英语成绩改为100
score['英语'] = 100
print(score)
#输出
{'英语': 100, '历史': 80}
#判断字典中是否包含指定的key
print('数学' in score)
print('英语' in score)
#输出
False
True
#########################################################
#字典的常用方法
#clear()的用法:清除字典中的所有key-value对
print(score)
score.clear()
print(score)
输出
{'英语': 100, '历史': 80}
{}
#get()的用法:根据key获取value值
score = {'英语': 100, '历史': 80,'数学':88}
print(score.get('英语')) #与[]效果相同
print(score['英语'])
#输出
100
100
#update()方法
score.update({'英语':60,'生物':99})
print(score)
#可以看出,使用update时,当有需要更新的key值时,将会覆盖原有值
#当没有需要更新的key值时,会自动创建该key-value对
#输出
{'英语': 60, '历史': 80, '数学': 88, '生物': 99}
#items(),keys(),values()用法
a = score.items() # 获取字典所有的key-value对,返回一个dict_items对象
print(a)
print(list(a)) #将dict_items转换成列表
print(list(a)[0]) #访问第一个key-value对
#输出
dict_items([('英语', 60), ('历史', 80), ('数学', 88), ('生物', 99)])
[('英语', 60), ('历史', 80), ('数学', 88), ('生物', 99)]
('英语', 60)
b = score.keys()
print(b)
print(list(b)) #转换成列表形式
print(list(b)[1]) #访问第二个key
#输出
dict_keys(['英语', '历史', '数学', '生物'])
['英语', '历史', '数学', '生物']
历史
c = score.values()
print(c)
print(list(c)) #转换成列表形式
print(list(c)[0]) #访问第一个value值
#输出
dict_values([60, 80, 88, 99])
[60, 80, 88, 99]
60
#pop()的使用
#pop() 方法用于获取指定 key 对应的 value,并删除这个 key-value 对
score = {'英语': 100, '历史': 80,'数学':88}
print(score)
score.pop('历史')
print(score)
#输出
{'英语': 100, '历史': 80, '数学': 88}
{'英语': 100, '数学': 88}
#popitem()方法,弹出底层存储的最后一个 key-value 对
score = {'英语': 100, '历史': 80,'数学':88}
print(score)
k,v = score.popitem()
print(score)
print(k,v)
#输出
{'英语': 100, '历史': 80, '数学': 88}
{'英语': 100, '历史': 80}
数学 88
#setdefault()方法
#setdefault() 方法也用于根据 key 来获取对应 value 的值。
#但该方法有一个额外的功能,即当程序要获取的 key 在字典中不存在时,该方法会先为这个不存在的 key 设置一个默认的 value,然后再返回该 key 对应的 value。
#即setdefault() 方法总能返回指定 key 对应的 value
score = {'英语': 100, '历史': 80,'数学':88}
print(score)
print(score.setdefault('英语',70)) #例如,英语原本就存在,因此返回的是原来的100而不是70
print(score.setdefault('生物',90)) #生物原本不存在,所以返回的是设定的90,并且将该key-value对加入字典中
print(score)
#输出
{'英语': 100, '历史': 80, '数学': 88}
100
90
{'英语': 100, '历史': 80, '数学': 88, '生物': 90}
#fromkeys() 方法:使用给定的多个 key 创建字典,这些 key 对应的 value 默认都是 None
#使用列表创建字典
a = dict.fromkeys(['m','n','p'])
print(a)
#使用元组创建字典
b = dict.fromkeys(('a','b','c'))
print(b)
#输出
{'m': None, 'n': None, 'p': None}
{'a': None, 'b': None, 'c': None}
Python中字典的基本操作
最新推荐文章于 2023-05-25 15:39:31 发布