005 dict

一、字典
1.认识字典
用{}表示,由键值对组成,{"key":"value"}
每一项内容为: "key":"value", 每项之间用,隔开,
key不可重复,重复的话,后面的会覆盖前面的value, 存储依靠key来计算
字典是使用hash算法来计算key的哈希值,使用哈希值来存储数据。

哈希算法得到一个无序的数,且唯一的
字典中的key必须是可哈希的,不可变的就是可哈希

不可变: int, str, tuple, bool
    ** 特例 **
  如果dict在遍历的过程中,进行了改变操作,会报错,
    解决方法,
    1.用list(dic())或set(dic())
    2.用赋值给新的字典

可变: list, dict,set
dic = {123: 456, True: 999, "id", "sylar"}
print(dic[123]) # 打印456
print(di[True]) # 打印 999
# 不合法的示例
# dic = {[1, 2, 3]: "周杰伦"} # list是可变的,不能作为key
2.增删改查
1、增加
* dic[key] = value # 新的value覆盖旧的,若原先没有则新增一个key-value,
* dic.setdefault(key,value2) #通过setdefault设置默认值,若已存在,则setdefault不起作用
增加一个键值对
* value还可以用嵌套input来增加,可以随心所欲输入

2、删除
* dic.pop(key) # 指定删除
* dic.popitem() # 随机删除一个
* del dic[key] # 指定删除
* clear() # 清除
3、改
* dic[key] = value # 已有则修改对应的值,没有则新增键值对
* dic.update(dic1) # 把dic1中的内容更新到dic中,若重名则替换,若不存在则新增
4、查
* dic[key] # 若key不存在,会报错;但因为简单所以最常用
* dic.get(key) # 若kye不存在,则返回None,还可以直接输入键值对,如下
dic.get(key, value) # 原有则不变,输出,若没有,则新增输出
5、相关操作
* dic.keys() # 所有的key输出
* dic.value() # 所有的value 输出
* dic.items() # 所有的键值对输出
3、字典的迭代
方案一、
for k, v in dic.items():
k, v # 输出所有的键值对

方案二、
for k in dic:
print(k) # 输出所有的key
dic[k] # 输出所有的value
4、解构、解包
a, b = 1, 2
print(a, b) # a = 1, b = 2 # python中所特有的
a, b = b, a
print(a, b) # a = 2, b = 1
5、字典嵌套
* 字典里面可以嵌套字典、元组、列表等等,无限嵌套
原文地址:https://www.cnblogs.com/yipianshuying/p/9839146.html