一、字典dict
1、基础概念信息
1)基本组成:由键值对组成,键值对之间用逗号分隔,大括号{}组成,value值可以任意值
2)key:不包含列表和字典
3)字典是无序的
4)可通过索引找到指定元素,根据指定的key取值
5)支持del删除和for循环,默认以key循环
6)key有重复时,只能取到其中一个
1.1 概念中的举例
1)索引eg
info={
"k1":"123",
"k2": 18,
"k3": True,
"k4": [11,22,33,
{
"kk4":"abd",
"kk5":11,
},
],
2: "ABC",
True: "娜娜",
(11,22): 123
}
v=info["k4"][3]["kk5"]
print(v)
结果:11
2、 dict类中对象可调用方法
2.1 keys\values\items
2.1.1默认key循环
for循环默认通过key循环:
info={"k1":"123","k2": 18,"k3": True,"k4": [11,22,33,
{"kk4":"abd","kk5":11,
},
],2: "ABC",
True:"娜娜",
(11,22): 123}for item ininfo:print(item)
结果:
True2k2
(11, 22)
k4
k1
k3
通过value循环输出
info={"k1":"123","k2": 18,"k3": True,"k4": [11,22,33,
{"kk4":"abd","kk5":11,
},
],2: "ABC",
True:"娜娜",
(11,22): 123}for item ininfo.values():print(item)
结果:
娜娜
True123[11, 22, 33, {'kk4': 'abd', 'kk5': 11}]18ABC123
2.1.2 通过键值对输出循环
info={"k1":"123","k2": 18,"k3": True,"k4": [11,22,33,
{"kk4":"abd","kk5":11,
},
],2: "ABC",
True:"娜娜",
(11,22): 123}for k,v ininfo.items():print(k,v)
结果:
k3 True
True 娜娜2ABC
k4 [11, 22, 33, {'kk4': 'abd', 'kk5': 11}]
k218k1123(11, 22) 123
2.2 clear\copy
2.3 fromkeys,静态方法:根据序列创建字典,并指定统一的值
v=dict.fromkeys(["k1",123,"abc"],6666)print(v)
输出:
{'abc': 6666, 123: 6666, 'k1': 6666}
2.4 get根据key获取值,key不存在时,可以指定,默认值是None
info ={"k1":"123","k2": 18,"k3": True
}
v1=info.get("k1111",12345345)
v2=info.get("k1",66666)print(v1,v2)
结果12345345 123
2.5 pop 删除指定key对应的键值对,且返回删除对应的value
popitem 随机删除一对键值对,并获取值,值的显示方式是??
info ={"k1":"123","k2": 18,"k3": True
}
v1=info.pop("k1")print(v1)print(info)
输出:123{'k3': True, 'k2': 18}
info ={"k1":"123","k2": 18,"k3": True
}
k,v=info.popitem()print(info,k,v)print(info)
结果:
{'k3': True, 'k2': 18} k1 123{'k3': True, 'k2': 18}
2.6 setdefault:设置值,已存在,不设置,获取当前key对应的值
不存在,设置,获取当前key设置的值
key存在时
info={"k1":"123","k2": 18,"k3": True
}
v=info.setdefault("k1",66666)print(v)print(info)
结果123Key不存在时
info={"k1":"123","k2": 18,"k3": True
}
v=info.setdefault("k11111",66666)print(v)print(info)
结果:66666{'k11111': 66666, 'k1': '123', 'k2': 18, 'k3': True}
2.7 update更新
字典方式更新:
info={"k1":"123","k2": 18,"k3": True
}
info.update({"k1":66666,"k4":"娜娜"})print(info)
内部构造成k=v的方式
info={"k1":"123","k2": 18,"k3": True
}
info.update(k1=66666,k4="娜娜")print(info)
输出结果:
{'k4': '娜娜', 'k3': True, 'k1': 66666, 'k2': 18}
二、bool布尔值
1、转换为bool()
2、内存存储时,存储的是True=1,False=0
3、假包含:None,[]空元组,()空列表,{}空字典,""空字符串,0