文章目录
前言
一、字典的创建
1.1 直接使用{}
s1 = {'name':'zhangsan','age' : 26, 'city':'beijing'}
print(s1)
{'name': 'zhangsan', 'age': 26, 'city': 'beijing'}
1.2 使用内置函数dict()
s2 = dict(name='zhangsan',age= 26, city='beijing')
print(s2)
{'name': 'zhangsan', 'age': 26, 'city': 'beijing'}
注意:1.1与1.2两者之间一个是 :,一个是 =
1.3 使用zip()函数
keys = ['name','age','city']
values = ['zhangsan',23,'beijing']
s3 = dict(zip(keys,values))
print(s3)
{'name': 'zhangsan', 'age': 23, 'city': 'beijing'}
1.4 使用items()方法
s5 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
items = s5.items()
dict = dict(items)
print(dict)
{'name': 'zhangsan', 'age': 25, 'city': 'beijing'}
二、字典取值
1.直接使用[ ],如果字典中不存在指定的key,则抛出异常keyError
代码如下(示例):
s5 = {'name':'zhangsan','age':20,'gender':'male'}
print(s5['name']) # zhangsan
s5 = {'name':'zhangsan','age':20,'gender':'male'}
print(s5['city']) # keyError
2.使用get (),如果字典中不存在指定的key,并不会抛出异常,而是返回none,但也可以通过设置参数来指定一个默认的value,以便于返回可以不存在时的提示
代码如下(示例):
s5 = {'name':'zhangsan','age':20,'gender':'male'}
print(s5.get('name')) #zhangsan
s5 = {'name':'zhangsan','age':20,'gender':'male'}
print(s5.get('city')) # None
s5 = {'name':'zhangsan','age':20,'gender':'male'}
print(s5.get('city','不存在')) # 不存在
三、其它操作
3.1 字典的更新:updata()
3.1.1 当update() 给定的键值对,在原字典不存在时,就会增加字典元素
s6 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
dict2 = {'Name':'lisi', 'Age':26, 'City':'shanghai'}
s6.update(dict2)
print(s6)
{'name': 'zhangsan', 'age': 25, 'city': 'beijing', 'Name': 'lisi', 'Age': 26, 'City': 'shanghai'}
3.1.2当update() 给定的键值对,在原字典存在时,就会修改字典元素
s7 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
dict2 = {'name':'lisi', 'age':26, 'city':'shanghai'}
s7.update(dict2)
print(s7) # {'name':'lisi', 'age':26, 'city':'shanghai'}
3.2 字典的遍历
3.2.1 字典推导式遍历
s8 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
dict2 = {k:v for k,v in s8.items() if k!='name'}
print(dict2) # {'age': 25, 'city': 'beijing'}
3.2.2 字典的普通遍历
s9 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
for key in s9:
print(key, dict[key]) # name zhangsan age 25 city beijing
3.2.3 字典的键值对遍历
s10 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
for key, value in s10.items():
print(key, value) # name zhangsan age 25 city beijing
3.3 字典元素的增加
s11 = {"a": 1, "b": 2, "c": 3}
s11["d"] = 4
print(s11) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
3.4 字典元素的修改
s12 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
s12['name'] = 'lisi'
print(s12) # {'name': 'lisi', 'age': 25, 'city': 'beijing'}
3.5 字典元素的删除
3.5.1 使用del命令删除指定元素
当字典中的某个元素不需要时,可以使用del命令将其删除。
3.5.1.1 键存在
s13 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
del s13['name']
print(s13) # {'age':25, 'city':'beijing'}
3.5.1.2 键不存在
当删除一个不存在的键时,将抛出 KeyError 的异常。
s14 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
del s14['height']
print(s14) # KeyError: 'height'
为了防止报错,需要修改代码:
s14 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
if 'height' in s14:
del s14['height']
else:
print('删除的键不在字典中')
print(s14)
删除的键不在字典中
{'name': 'zhangsan', 'age': 25, 'city': 'beijing'}
3.5.2 使用pop()命令删除指定元素
pop()方法和del命令类似,都是指定元素的键来删除该元素, 注意pop后面是(),不是[ ]。
s15 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
s15.pop('name')
print(s15) # {'age': 25, 'city': 'beijing'}
3.5.3 使用popitem() 方法删除字典中最后一个键值对。
s16 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
s16.popitem()
print(s16) # {'name': 'zhangsan', 'age': 25}
3.5.4 使用clear()方法清空字典元素
s17 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
s17.clear()
print(s17) # {}
3.6 字典键值对的数量
s18 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
print(len(s18)) # 3
3.7 字典中是否包含某值,某键,某键值对,或者是否为空
3.7.1 字典中是否包含某键
s19 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
if 'height' in s19:
print('s19 contains')
else:
print('不存在') # 不存在
3.7.2 字典中是否包含某值
s20 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
if 90 in s20.values():
print('dict contains')
else:
print('不存在') # 不存在
3.7.3 字典中是否包含某键值对
s21 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
if ('name', 'zhangsan') in s21.items():
print('dict contains name: zhangsan')
else:
print('不存在') # dict contains name: zhangsan
3.7.4 字典是否是空值
s22 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
if not s22:
print('dict is empty')
else:
print('dict is not empty') # dict is not empty