1. 什么是字典
1. 字典是一种可变的容器,可以存储任意类型的数据
2. 字典中的值,是用'键'(key)索引,而列表和元组是用的是下标索引
3. 字典中的数据是没有先后顺序的,字典的存储是无序的
4. 字典中数据以 键(key):值(value)对 的方式进行存储的
5. 字典的键不能重复,且只能用不可变的数据作为键
2. 语法
2.1 创建空字典
dic = {}
2.2 创建非空字典
2.2.1.
dic = {
'name':'naruto',
'age':18,
}
2.2.2.
dic = {
1 : 'One',
2 : 'Two',
}
2.2.3.
dic = {
'YAZHOU':['中国','日本','韩国','伊朗'],
'OUZHOU':['英国','法国','德国'],
'MEIZHOU':['美国','加拿大','墨西哥']
}
2.2.4.
dic = {
(1970,1,1) : "testyear"
}
2.3. 使用字典的构造函数创建字典
2.3.1. dic = dict() #创建一个空字典
2.3.2. 使用可迭代对象初始化一个字典
dict(iterable)
dic = dict(
[
('name','tarena'),
('age',15),
['addr','BJ']
]
)
2.4. 使用关键字传参形式创建一个字典
dict(**kwargs)
dic=(name='tarena',age=15)
3. 字典的基本操作
字典的键索引:字典[键]
示例:
dic ={"name":"naruto" , "age":18}
print(dic['name'],"的年龄是",dic['age'])
3.1. 添加/修改 字典的元素
语法:
字典[键] = 值
说明:
当键不存在时,创建键,并绑定值
当键存在时,修改键绑定的值
3.2. 删除 字典的元素
del 字典[键]
4. 字典的成员运算符 - in /not in
可以用 in 运算符来判断一个键是否存在于字典中
如果'键'存在则返回True,否则返回False
not in 与 in 结果相反
示例:
dic = {
"name":"tarena",
"age" : 15
}
if 'name' in dic:
print(dic['name'])
print(15 in dic) # 结果:False,只判断键,不判断值
5. 字典的迭代访问
5.1. 基本迭代
语法:
for 变量 in 字典:
# 迭代变量表示的是 键
pass
5.2. 通过 字典.keys() 得到所有的键组成的列表
5.3. 通过 字典.values()得到所有的值组成的列表
5.4. 通过 字典.items()得到所有的 键值对 所组成的列表
5.5. 可以用于字典的内建函数
len(dic) : 返回字典中键值对的个数
max(dic) : 返回字典的键的最大值
min(dic) : 返回字典的键的最小值
sum(dic) : 返回字典的所有的键的和
any(dic) : 真值测试,任意一个键为True,结果为True
all(dic) : 真值测试,所有的键都为True,结果为True
5.6. 字典推导式
5.6.1. 什么是字典推导式
字典推导式是用可迭代对象创建字典的表达式
5.6.2. 语法
{ 键表达式 : 值表达式 for 变量 in 可迭代对象 if 条件}
说明:if 条件是可以省略的
举例:生成一个字典,键为数字(10以内),值为键的平方
d = {x : x**2 for x in range(10)}
d = {x : x**2 for x in range(10) if x % 2 == 0}

