1、字典为多个键值对的组合,表现为{key:value}
2、字典内,key必须为不可变类型数据,多用字符串,且一个字典内的key不可重复
3、字典内的键值对是无序的,这说明我们无法通过下标获取里面的元素。如需要获取里面的值,可以通过key取得。下方列举了两种通过key获取字典内value的方法
my_dict = {'name':'zs', 'age':18}
print(my_dict['name']) # 方法1
print(my_dict.get('name')) # 方法2
4、在上面两种通过key获取value的方法中,如果输入的key不存在,那么方法1在执行时会报错,而方法2会返回None
5、创建一个空字典时,可以用 变量名 = {} 的方法
6、字典的增删改查
增:字典名[key] = value
my_dict = {}
my_dict['name'] = 'zs'
print(my_dict)
我们也可以用.setdefault(key,value)的方法对新增的key设置默认值,value可以为空,此时该key的值默认为None
my_dict = {'name':'zs', 'age':18}
my_dict.setdefault('sex')
print(my_dict) -> 返回{'name': 'zs', 'age': 18, 'sex': None}
如用.setdefault()的方式对已有key设置默认值,那么原有key的值并不会改变(即使原值为None也如此)
my_dict = {'name':'zs', 'age':18}
my_dict.setdefault('age', '20')
print(my_dict) -> 返回{'name': 'zs', 'age': 18}
改:字典名[已存在的key] = value
my_dict = {}
my_dict['name'] = 'zs' # 新增键值对
my_dict['name'] = 'ls' # 修改已有键值对的值
print(my_dict)
删:
删除字典内的键值对:可以通过指定删除的key,将该键值对从字典内删除
my_dict = {'name':'zs', 'age':18}
del my_dict['age']
print(my_dict) -> 返回{'name': 'zs'}
也可以用.pop(key)的方式删除指定的键值对,并返回删除掉的值(并不返回key)
my_dict = {'name':'zs', 'age':18}
a = my_dict.pop('age')
print(a) -> 返回18
用.popitem()会随机删除字典中的键值对,同时返回由被删除的key和value组成的元组
my_dict = {'name':'zs', 'age':18}
a = my_dict.popitem()
print(a) -> 返回('age', 18)
清空字典内的键值对用.clear()
my_dict = {'name':'zs', 'age':18}
my_dict.clear()
print(my_dict) -> 返回{}
删除字典用 del 字典名
my_dict = {'name':'zs', 'age':18}
del my_dict
print(my_dict) -> 执行时报错
7、计算字典中的键值对数量,可以用len()函数
8、判断一个值是否在字典内,可以用 value in/not in 字典名.values()的方式
my_dict = {'name':'zs', 'age':18}
a = 'ls' in my_dict.values()
print(a) -> 返回False
9、判断一个key是否在字典内,可以用 key in/not in 字典名.keys(),其中.keys()可以不加
my_dict = {'name':'zs', 'age':18}
a = 'age' in my_dict
print(a) -> 返回True
10、遍历字典时,用for…in的方式
# 但如果只用for…in,返回的为字典中的key,并不返回value
my_dict = {'name':'zs', 'age':18}
for i in my_dict:
print(i) -> 返回name
age
如想同时拿到键值对,可以用如下方式
my_dict = {'name':'zs', 'age':18}
for key, value in my_dict.items():
print(key, value) -> 返回name zs
age 18