字典是键值对形式的无序可变序列,因此没有第一个元素和最后一个元素的概念。
每一个元素都是键值对的形式:
键可以是任意不可变数据,且不可重复
值是任意可变数据,可以重复
创建字典
1. 使用 { } 创建字典,
a = {"name":"sunsun", "age":18}
2. 使用dict()函数
a = dict(name='sunsun', age=18)
3. 通过zip()方法
k = ['name', 'age']
v = ['sunsun', 18]
a = dict(zip(k,v))
增加元素
如果键已经存在,则覆盖原来的键值对;如果键不存在,在原来的字典里新增键值对
1. 使用key-value的方式添加
a['job'] = "zhigong"
2. 使用update()方法批量添加元素
删除元素
1. 使用del()方法删除单个元素
2. 使用clear()方法删除所有元素
3. pop()方法,删除该键值对,并返回对应的 值对象
4. popitem(),随机删除键值对,并返回该 值对象。如果想依次删除并处理删除项,建议使用该方法,因为不用去先获取键。
字典合并
1. 使用dict(a, **b)方法
a = {"name": "张三"}
b = {"age": 18}
c = dict(a, **b)
2. 使用update()方法
a = {"name": "张三"}
b = {"age": 18}
c = {}
c.update(a)
c.update(b)
3. 先将字典转换成列表,叠加后再转换成字典
a = {"name": "张三"}
b = {"age": 18}
c = dict(list(a.items())+list(b.items()))
序列解包
a = {"name":"mhw", "age":20, "job":"zhigong"}
#默认对键进行操作
name,job,age = a
#对键值对进行操作
name,job,age = a.items()
#对值进行操作
name,job,age = a.values()
当新增键值对时,如果起初分配的内存不够,会自动扩容。所以,最好是先遍历字典,把想要的数据取出来再进行操作。否则边遍历字典边操作,很容易出错。