1.作用
按对应信息存储多个值,比如一个人的姓名、年龄、性别等
2.定义
{}内用逗号分隔开多个key:value,其中value可以使任意类型,但是key必须是不可变类型,且不能重复
造字典的五种方法:
# 方法一 直接定义
d1 = {'k1':111, 'k2':222}
print(d1, type(d1))
{'k1': 111, 'k2': 222} <class 'dict'>
# 方法二 利用dict定义
d2 = dict(x=1, y=2, z=3)
print(d2)
{'x': 1, 'y': 2, 'z': 3}
# 将一个或多个列表定义到字典里
d3 = {} # 先定义一个空字典
info = [
['name', 'yxs'],
['age', 18],
['gender', 'male']
]
for k, v in info:
d3[k] = v
print(d3)
{'name': 'yxs', 'age': 18, 'gender': 'male'}
# 方法四 一行代码搞定方法三的操作
d4 = {} # 先定义一个空字典
info = [
['name', 'yxs'],
['age', 18],
['gender', 'male']
]
d4 = dict(info)
print(d4)
{'name': 'yxs', 'age': 18, 'gender': 'male'}
# 方法五 定义一个初始化字典
keys = ['name', 'age', 'gender']
d5 = {}.fromkeys(keys, None)
print(d5)
{'name': None, 'age': None, 'gender': None}
3.内置方法
3.1 按key存取值,可存可取
d = {'k1':111}
# 已经存在的值,可进行修改
d['k1'] = 22
print(d)
{'k1': 22}
# 不存在,则创建新值
d['k2'] = 222
print(d)
{'k1': 22, 'k2': 222}
3.2 长度
d = {'k1':1, 'k2':2, 'k3':3, 'k4':4}
print(len(d))
4
3.3 成员运算in 和not in (in根据key)
d = {'k1':1, 'k2':2}
print('k1' in d)
True
print('k3' not in d)
True
3.4 删除
1)del 删除 (根据key删除)
d = {'k1':11, 'k2':22}
del d['k1']
print(d)
{'k2': 22}
2)pop删除 (根据key删除,有返回值 返回对应值的values)
d = {'k1':11, 'k2':22}
res = d.pop('k1')
print(d)
{'k2': 22}
print(res)
11
3)popitem 随机删除(以元组的形式返回被删除的key和values
d = {'k1':1, 'k2':2}
res = d.popitem()
print(d)
{'k1': 1}
print(res)
('k2', 2)
3.5 键keys(),值values(),键值对items()
d = {'k1':1, 'k2':2}
print(d.keys())
dict_keys(['k1', 'k2'])
print(d.values())
dict_values([1, 2])
print(d.items())
dict_items([('k1', 1), ('k2', 2)])
3.6 for循环
d = {'k1':1, "k2":2}
for k in d.keys():
print(k)
k1
k2
for v in d.values():
print(v)
1
2
for item in d.items():
print(item)
('k1', 1)
('k2', 2)
3.7 clear 清空字典
d = {'k1':111}
d.clear()
print(d)
{}
3.8 update 更新字典
d = {'k1':111}
res = {'k1':1, 'k2':2} # 原字典中有的将被替换,没有的将被添加
d.update(res)
print(d)
{'k1': 1, 'k2': 2}
3.9 get 取值 根据key取值,不存在返回Nome 容错性好
d = {'k1':111}
print(d.get('k1'))
111
print(d.get('k2'))
None
3.10 setdefault
可以检索一个字典中是否存在某个key和value。没有则添加
如果key有则不添加,返回字典中key对应的值
info = {'name':'yxs'}
res = info.setdefault('name','yxs')
print(res)
yxs
info.setdefault('age', 18)
print(info)
{'name': 'yxs', 'age': 18}