字典
1.字典是一种可变的容器,可以存储任意类型的数据
2.字典中的每一个数据都用‘键'进行索引而不像序列可以整数下标来进行索引
3.字典中的数据没有先后关系,字典的存储是无序的
4.字典中的数值以键(key) - 值(value)对形式进行映射存储
5.字典的键不能重复,且只能用不可变类型作为字典的键
字典的字面值表示方法:
字典的表示方法是以{}括起来,以冒号(:)分隔键 - 值对,各键 - 值对之间用逗号(,) 分隔开
创建空字典的字面值
d{} #d绑定空字典
创建非空字典的字面值
示例:
d{'name':'xiaoming','age':35}
字典的构造函数 dict
dict() 生成一个空的字典,等同于{}
dict(iterable) 用可迭代对象初始化一个字典
dict(**kwargs) 用关键字传参形式创建一个字典
字典的键(key)必须为 不可变类型,值(value)可以为任意类型
不可变类型有:bool,int,float,complex,str,tuple,frozenset,bytes
可变数据类型:list , dict , set , bytearray(字节数组)
字典的基本操作
字典的键索引:
用[]运算符可以获取字典内的“键”对应的值,也可以用[]运算符修改“键”对应的值
1.键索引的语法:
字典[键]
2.添加/修改字典中的元素:
字典[键] = 值
说明:
键不存在时,创建键,并绑定对应的值
键存在时,修改键绑定的值
3.删除字典元素
del 字典[键]
字典的成员资格判断in运算符 [只判断键不判断值]
可以用in运算符判断一个键是否存在于字典当中,如果'键'存在则返回Ture否则返回False
not in 与 in 结果相反
字典的迭代访问
字典是可迭代对象,字典只能对键进行迭代访问
示例:
d={‘name’:’tarena’,’age’:’15’}
for k in d:
print(k,’对应的值是:’,d[k])
可以用于字典的内建函数:
len(x) 返回字典的键值对个数
max(x) 返回字典的键的最大值
min(x) 返回字典的键的最小值
sum(x) 返回字典中所有键的和
any(x) 真值测试,只要有一个键为Ture,返回Ture
all(x) 真值测试,当全部键为真值时,返回Ture
字典推导式
字典推导式是用可迭代对象创建字典的表达式
语法:
{键表达式:值表达式 for 变量 in 可迭代对象 if 真值表达式}
说明:
if 子句部分可以省略
示例:
生成一个字典,键为数字(10以内),值为键的平方
d={x:x**2 for x in range(10)}
字典和列表的异同点:
1.都是可变对象
2.索引方式不同,列表用整数索引,字典用键索引
3.字典的插入,删除,修改数据的速度可能会快于列表
4.列表的存储是有序的,字典的存储是无序的