Python中字典的基本操作

#与字典有关的操作
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}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

�小主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值