~~字典的简单方法使用~~
进击のpython
-
定义
info{ "name":"zhangsan", "age":"22", "sex":"man" }
-
特性
- 无序
- 速度快
- key不可变 value多元存放
-
创建
- person=
- person=dict(name="zhangsan",age="22",sex=“man”)
- {}.fromkeys(keys) 批量生产字典
-
增加
d = {1: None, 2: None, 3: None, 4: None, 5: None} d["name"] = "zhangsan" print(d)
这种方法虽然简单,但是当添加的key在原字典里也有的时候,就会覆盖。
不被覆盖的是这种方法:
d = {1: None, 2: None, 3: None, 4: None, 5: None}
d.setdefault("name","zhangsan")
print(d)
d.setdefault("name","lisi")
print(d)
即使第二次命名字典中的key,value也还是开始的value,并没有改变,但是 也不会报错。
-
删除
d.pop("3") 删除“3”这个键
d.popitem() 随便删除一个
del d["4"] 同“pop”
d.clear() 清空字典
d = {1: None, 2: None, 3: None, 4: None, 5: None} print(d) d.pop(3) print(d) del d[4] print(d) d.popitem() print(d) d.clear() print(d)
-
修改
d["key"]="new_value" 如果有原始key,则 new_value 会覆盖原先的值
d.update(d2) 将字典d2中的键值对添加到字典d中
d = {1: None, 2: None, 3: None, 4: None, 5: None} d2 = {3: "苹果", 6: "香蕉"} print(d, d2) d[2] = "yaya" print(d) d.update(d2) print(d)
d2中如果和d有相同的键,则会覆盖掉原有的值,没有则添加。
-
查找
d["key"] 返回字典里 key 所对应的 value ,没有则报错。
d.get(key,default = None) 返回字典中key 所对应的 value ,不存在返回default的值
"key" in dic 存在则返回True,没有则返回False
d.keys() 返回一个包含字典里所有keys的列表
d.values() 返回一个包含字典里所有values的列表
d.items() 返回一个包含所有(键,值)元祖的列表
d = {1: "pingguo", 2: "juzi", 3: "xiangjiao", 4: "li", 5: None} print(d) print(d[3]) # print(d[6]) print(d.get(3)) print(d.get(6)) print(d.get(6,"*")) print(d.keys()) print(d.values()) print(d.items())
-
循环
正常的 for i in 循环,循环的是字典的 key
如果想循环value,就使用d[key]的方法
以下是常见的四种方式:
d = {1: "pingguo", 2: "juzi", 3: "xiangjiao", 4: "li", 5: None} print(d) print("______________________________________________________________") #打印key for i in d: print(i) print("______________________________________________________________") #打印value for i in d: print(d[i]) print("______________________________________________________________") #直接打印,但是是元组,效率低 for i in d.items(): print(i) print("______________________________________________________________") #去除元组,效率低 for k,v in d.items(): print(k,v)
-
长度
len(d)