目录
c.通过setdefault检测字典是否存在键或者增加键值对
活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…
一、字典概念
1.概念:
在Python中,字典简单来讲,就是用大括号括起来,有键值对的一个东西。
2.格式为:
{'键1':'值1','键2':'值2','键3':'值3'}
引用菜鸟教程的解释:
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。
3.简单示例:
a = { 'School_class':2 ,'name':'SYW','age':20,'School':'SZschool','Youlike':'Basketball'}
#这就是一个字典,可以直接打印输出:
print(a)
# 下面是输出
>>> {'School_class': 2, 'name': 'SYW', 'age': 20, 'School': 'SZschool', 'Youlike': 'Basketball'}
二、字典相关操作
1.字典创建
字典的创建有很多种,下面就给大家介绍介绍。
a.直接创建:(简单粗暴)
dd = {'name':'SYW','age':21,'job':'student'}
cc = {} #空的字典对象
print(dd,cc)
输出:
>>> {'name': 'SYW', 'age': 21, 'job': 'student'} {}
b.借用dict创建
z = dict(name='SYW',age=21,job='student')
v = dict([("name","SYW"),("age",21)])
dit0 = dict() #空的字典对象
print(z,v,dit0)
输出:
>>> {'name': 'SYW', 'age': 21, 'job': 'student'} {'name': 'SYW', 'age': 21} {}
c.通过zip()创建字典对象
优势:将键值对分开,以列表的形式创建,创建形式灵活。
建议:键与值导入时要一一对应,否则键创建后会被抛弃。
f = ['name','age','job']
s = ['SYW',21,'Student']
dit0 = dict(zip(f,s))
print(dit0)
输出:
>>> {'name': 'SYW', 'age': 21, 'job': 'Student'}
d. fromkeys通过一维键列表创建字典
# 1.默认值为空(None)的字典
list1 = ['name','age','job']
a = dict.fromkeys(list1)
print(a)
输出:
>>> {'name': None, 'age': None, 'job': None}
# 2.将默认值修改为任意值再创建字典:
list1 = ['name','age','job']
b = dict.fromkeys(list1,"大汉王朝" )
print(b)
输出:
>>> {'name': '大汉王朝', 'age': '大汉王朝', 'job': '大汉王朝'}
2.字典访问
先创建一个根字典,提供给对应的方法函数访问。
a = {'name':'SYW','age':18,'job':'student'}
a.通过[键]获得“值”
print(a['name'])
print(a['age'])
# 键不存在会抛出异常。
# 异常部分被我使用try...except...替换掉了,所以没有抛出异常,输出出现异常时会输出"报错!键'sex'不存在!"。
try:
print(a['sex'])
except Exception as e:
print("报错!键'sex'不存在!")
输出:
>>> SYW
>>> 18
>>> 报错!键'sex'不存在!
b.通过get()方法获得“值”,比较好用
功能:键存在,返回“值”;键不存在,返回None或者默认对象。
print(a.get('name'))
print(a.get('sex'))
print(a.get('sex','一个男人')) # 如果键不存在,返回 '一个男人'
# 列出所有的键值对
print(a.items())
输出:
>>> SYW
>>> None
>>> 一个男人
>>> dict_items([('name', 'SYW'), ('age', 18), ('job', 'student')])
c. 列出所有的键和值
# 列出所有的键
print(a.keys())
# 列出所有的值
print(a.values())
输出:
>>> dict_keys(['name', 'age', 'job'])
>>> dict_values(['SYW', 18, 'student'])
d. 列出键值对个数,检测键是否存在
# len() 键值对的个数
print('键值对的数目为:',len(a))
# 检测一个“键”是否在字典中
a = {"name":"SYW","age":18}
print("name" in a)
输出:
>>> 键值对的数目为: 3
>>> True
3.字典增删改
增与改:
a. a['键']='值' ==> 直接派增
“键”存在 ==> 覆盖旧键值;
“键”不存在=> 新增“键值对”。
a = {'name':'SYW','age':21,'job':'SZstudent'}
a['address']='汕头职业街'
a['age']=19
print(a)
输出:
>>> {'name': 'SYW', 'age': 19, 'job': 'SZstudent', 'address': '汕头职业街'}
b. a.update(b)
将b的键值对全塞到a中,且将a相同键的值直接覆盖。
dict0={'name':'SYW','salary':'18w'}
dict1={'name':'xiaolin','city':'guangdong'}
dict1.update(dict0)
print(dict1)
输出:
>>> {'name': 'SYW', 'city': 'guangdong', 'salary': '18w'}
c.通过setdefault检测字典是否存在键或者增加键值对
A=['name','age']
B=['SYW',20]
dict0 = dict(zip(A,B))
print(dict0)
dict0.setdefault('name','XL')
# 因为name存在,所以name的值没什么变化。
print(dict0)
dict0.setdefault('city','guangdong')
# 因为ciy不存在,所以添加新的键值对。
print(dict0)
输出:
>>> {'name': 'SYW', 'age': 20}
>>> {'name': 'SYW', 'age': 20}
>>> {'name': 'SYW', 'age': 20, 'city': 'guangdong'}
删:
a. del(a['键']) 直接删除
b. pop(a['键']) 删除键值对并返回“值”;
c. clear() 删除全部键值对
a = {'name':'SYW','age':20,'job':'Student'}
del(a['name'])
print(a)
b = a.pop('age')
print(b)
a.clear()
try:
print(a['job'])
except Exception as e:
print("字典a已经被清除了啦~")
输出:
>>> {'age': 20, 'job': 'Student'}
>>> 20
>>> 字典a已经被清除了啦~
d. popitem() :
删除并返回最后一对键值对。
a = {'name':'SYW','age':21,'job':'Student'}
print(a)
print(a.popitem())
print(a)
print(a.popitem())
print(a)
输出:
>>> {'name': 'SYW', 'age': 21, 'job': 'Student'}
>>> ('job', 'Student')
>>> {'name': 'SYW', 'age': 21}
>>> ('age', 21)
>>> {'name': 'SYW'}
4.字典遍历:
键遍历、值遍历和键值遍历:
A=['name','age']
B=['SYW',20]
dict0 = dict(zip(A,B))
for key in dict0:
print("字典键为:",key)
print("-------------")
for value in dict0:
print("字典值遍历:",value)
print("-------------")
for key,value in dict0.items():
print("字典的键为{0},值为{1}。".format(key,value))
print("-------------")
输出:
>>> 字典键为: name
>>> 字典键为: age
>>> -------------
>>> 字典值遍历: name
>>> 字典值遍历: age
>>> -------------
>>> 字典的键为name,值为SYW。
>>> 字典的键为age,值为20。
>>> -------------
结尾:
以上就是字典比较基本操作的全部了,更多详细操作还请阅读官方文档哦~