字典(dict)
Python中唯一实现了映射关系的内置类型
左边为键 右边为值 写入键的值就可以得到值的值
通过指定一个不存在于字典里的键 就可以生成一个新的键值
- 一、创建方法
- 创建方法一
字典名 = {“键1”:”值1”,”键2”:”值2”……}
- 创建方法二 dict()函数
- 用法一:
dict(键1 = “值1“,键2 = ”值2“……)
-
- 用法二:
dict([(“键1”,”值1”),(“键2”,”值2”)……]) 使用到元组嵌套列表
-
- 用法三
Dirt({“键1”:”值1”,”键2”:”值2”……}) 将第一种方法作为参数传递给diet
-
- 用法四:
通过指定一个不存在于字典里的键 就可以生成一个新的键值 可混合使用
Dirt({“键1”:”值1”,”键2”:”值2”……},键3 = “值3“)
-
- 用法五:
Dict([“键1”,”键2”,”键3”……],[“值1”,”值2”,”值3”……]) 利用zip()函数
这五种方法是等价的
- 二、增
-
- fromkeys(iterable[,values])
-
适用于从无到有创建一个所有键的值都相同的字典
iterable 指定可迭代对象来创建新的字典
values 将字典中所有的值初始化为该参数指定的值
可后期再修改某个键的值 如果在字典中找不到对应的键 同样的操作会增加新的键值对
列表中的元素是可以重复的 字典中的键值对是不可以重复的 一个键对应一个值 如果有多个值
新的值会覆盖旧的值
字典是基于散列表实现的,由于 “键的值如果相等,哈希值就必须一致” 的原理,所以 1.0 和 1 在字典中认为是同一个键,对同一个键进行重复赋值,Python 会用新的值去覆盖旧的值。
- 三、删
-
- pop(key[,default])
-
删除字典中指定的元素 删除后返回键对应的值
删除不存在的键就会抛出异常 default参数 在不存在对应键时 会返回参数指定的内容
-
-
- popitem()
-
在python3.7之前 字典是无序的 随机删除一个键值对
在3.7之后 字典是有序的 删除最后一个加入字典的键值对
-
-
- del关键字
-
删除一个指定的字典元素
2.clear()
清空字典中的内容
- 四、改
只需要指定一个存在于字典中的键就可以修改其对应的值
-
-
- 逐个赋值操作
-
字典名[键] = 值
-
-
- update([other])
-
可以同时给它传入多个键值对,也可以直接给它传入另外一个字典,或者一个包含键值对的可迭代对象
- 五、查
-
- 经典方法
-
通过键查找值 字典名[键]——返回值 若查找不存在的值会抛出异常
-
-
- get(key[,default])
-
default 当找不到键时返回指定的值
-
-
- setdefault(key[,default])
-
在字典中查找键是否存在于字典中,存在返回指定的值。若不存在,则给它指定一个新的值。
视图对象
- 六、items()、keys()、values()
分别创建键值对、键、值的视图对象
- 七、reverseed()
Python3.8之后对字典内部的键值对进行逆向操作
- 八、嵌套
字典同样可进行嵌套(可嵌套列表也可嵌套序列)
但索引时需进行两次索引(列表索引相应换成下标索引值)
- 九、字典推导式
可加上筛选
最后一种推导式 键值是唯一的,每一个键值都被覆盖了三次,只取最后一次,即6
- 十、判断一个值是否在字典中
值 in 字典名.values()
将字典赋值给变量 变量只是一个标签,这个标签指定的对象(字典)被清空了,那么指向同一个对象的标签得到的也是一个空对象。
源自:小甲鱼B站的python学习课程