一、字典 dict
info = {"k1" : "v1", "k2" : "v2"}
以键值对形式组成字典
字典里的value可以是任何值
列表不能作为字典的key
字典可以作为字典的key
元组可以作为字典的key
布尔值可以作为字典的key 但是重复的key只会显示一个,True容易和数字1重复,需注意!
字典是无序的
字典支持索引取值,但不支持切片
info = { "k1": 18, 2 : True, "k3": [ "li", [], (), 22, 33, { "kk1": "vv1", "kk2": "vv2", "kk3": (11, 22) } ], "k4": (11, 22, 33, 44) } v = info["k1"] print(v)
info = { "k1": 18, 2 : True, "k3": [ "li", [], (), 22, 33, { "kk1": "vv1", "kk2": "vv2", "kk3": (11, 22) } ], "k4": (11, 22, 33, 44) } v = info["k3"][5]["kk3"][0] print(v)
注意:通过索引key值去找value的话,如果该key不存在,会报错。
支持del删除
del info['k1']
支持for 循环
1.输出所有keys
info = {"k1": "v1", "k2": "v2"} for item in info.keys(): print(item)
2.输出所有values值
info = {"k1": "v1", "k2": "v2"} for item in info.values(): print(item)
3. 同时输出keys和values:
info = {"k1": "v1", "k2": "v2"} for item in info.keys(): print(item, info[item])
或(这个更重要)items 方法
info = {"k1": "v1", "k2": "v2"}
for k, v in info.items():
print(k, v)
二、字典的魔法
1. 该方法和前面相同不再赘述:clear copy (浅拷贝)
2. 根据序列(可以是列表、元组、字符串等),创建字典,并指定统一的值
v = dict.fromkeys(["k1", 123, "999"], "爱你") print(v)
3. get方法,如果传入的key不存在,默认返回None,也可以指定返回值
dic = {"k1": "v1"} v = dic.get("k1") v2 = dic.get("大白", "不存在") print(v, v2)
4. pop删除,当要删除的key不存在时,返回指定内容
dic = {"k1": "v1",
"k2": "v2"
}
v1 = dic.pop("k1")
v2 = dic.pop("k3", "不存在哦亲")
print(dic)
print(v1)
print(v2)
5. 随机删除一个,返回被删除的键和值
dic = {"k1": "v1", "k2": "v2" } v = dic.popitem() print(dic, v)
或
dic = {"k1": "v1", "k2": "v2" } k, v = dic.popitem() print(dic, k, v)
6.设置值,如果已经存在,不设置,获取当前key对应的值
如果不存在,设置,获取当前key对应的值
dic = {"k1": "v1", "k2": "v2" } v = dic.setdefault("大白", "123") v2 = dic.setdefault("k1", "11111111") print(dic, v) print(dic, v2)
7. 更新字典
dic = {"k1": "v1", "k2": "v2" } dic.update({"k1": "11111", "k3": "liu"}) print(dic)
或者
dic = {"k1": "v1", "k2": "v2" } dic.update(k1=123, k3 = 345) print(dic)
重要:keys() values() items() get update
补充:
in dic 默认找的是key
in dic.values() 能找到values
dic = {"k1": "v1", "k2": "v2" } v = "k1" in dic v2 = "v1" in dic.values() print(v) print(v2)
布尔值:在内存中就表现为0和1
转换:bool(...)
以下情况为假:None "" () [] {} 0 ====>False