键(key)
值(value)
字典是映射类型
字符串 数组 元组 是序列类型
zd={"陈淑钰":"很帅","钰钰":"吴彦祖","小钰钰":"大帅哥"}##陈淑钰键 ##很帅 值 print("钰钰是",zd["钰钰"])##钰钰是 吴彦祖 pm={1:"一",2:"二",3:"三"} print(pm[1])##一
创建空字典
kj={}
dict是一个工厂函数 类型
()里面只能有一个参数
可以用列表 或者元组 伪装成一个参数
列表=[("陈淑钰喜欢的","黑丝"),("钰钰喜欢的","白丝"),("陈淑钰比较喜欢的","渔网")] ##元组同理
wz=dict((("陈淑钰喜欢的","黑丝"),("钰钰喜欢的","白丝"),("陈淑钰比较喜欢的","渔网"))) print(wz["陈淑钰喜欢的"],"是陈淑钰想看的") ##黑丝 是陈淑钰想看的
kh=dict(黑丝="让色情永不停息",小甲鱼="让编程改变世界") print(kh) ##{'黑丝': '让色情永不停息', '小甲鱼': '让编程改变世界 print(kh["黑丝"]) ##让色情永不停息
如果键在这个字典是存在的 则是改写这个键的值
否则就直接创建新的键并给他赋值
kh=dict(黑丝="让色情永不停息",小甲鱼="让编程改变世界") print(kh) ##{'黑丝': '让色情永不停息', '小甲鱼': '让编程改变世界'} kh["黑丝"]="让鼻血血流不止" print(kh) ##{'黑丝': '让鼻血血流不止', '小甲鱼': '让编程改变世界'} print(kh) kh["秦将"]="再小的帆也能远航" ##{'黑丝': '让鼻血血流不止', '小甲鱼': '让编程改变世界', '秦将': '再小的帆也能远航'}
pm01= {1: "一", 2: "二", 3: "三"} pm01.setdefault(4) print(pm01) ##{1: '一', 2: '二', 4: None} pm01.setdefault(5,"五") print(pm01) ##{1: '一', 2: '二', 4: None, 5: '五'}
通过字典或者映射关系 更新另一个字典
pm01={1: '一', 2: '二', 4: None, 5: '五'} b={6:"六"} pm01.update(b) print(pm01)
创建并返回新的字典
dict.fromkeys(s[v])
s=键 v=值 v为空的时候 默认 None
srf=dict.fromkeys((1,2,3)) print(srf) v为空的时候 默认 None ##{1: None, 2: None, 3: None}
v是一个参数 默认为s的值
srf01=dict.fromkeys((1,2,3),"钰钰很帅") print(srf01) ##{1: '钰钰很帅', 2: '钰钰很帅', 3: '钰钰很帅'} srf01=dict.fromkeys((1,2,3),("钰钰很帅","钰钰非常帅")) print(srf01) ##{1: ('钰钰很帅', '钰钰非常帅'), 2: ('钰钰很帅', '钰钰非常帅'), 3: ('钰钰很帅', '钰钰非常帅')}
fromkeys不能改下字典
srf01=dict .fromkeys((1,2,3),("钰钰很帅","钰钰非常帅")) print(srf01) ##{1: ('钰钰很帅', '钰钰非常帅'), 2: ('钰钰很帅', '钰钰非常帅'), 3: ('钰钰很帅', '钰钰非常帅')} srf02=srf01.fromkeys((2,3),("吴彦祖","钰钰")) print(srf02) ##{2: ('吴彦祖', '钰钰'), 3: ('吴彦祖', '钰钰')}
fromkeys不能改下字典 而是创建了一个字典
用法 键名字.keys
一般用于 for
srf03=dict.fromkeys(range(30),"钰钰") print(srf03) for srk in srf03.keys(): print(srk) ##输出0-29键的值
用法 键名字.values
一般用于 for
srf03=dict.fromkeys(range(30),"钰钰") for srv in srf03.valuesi(): print(srv) ##将所以键的值打印出来
用法 键名字.items
一般用于 for
srf03=dict.fromkeys(range(30),"钰钰") for sri in srf03.items(): print(sri) ##将字典里的项 以元组的形式打印出来 (0, '钰钰') .......... (29, '钰钰')
判断字典里是否有的项
print(srf03.get(32))
如果没有则输出None
print(srf03.get(21,"没有"))
如果没有则输出没有
in 与 not in 是用来作为逻辑判断的另一种方式。
in 右侧的内容里,是否包含了左侧的内容。 包含返回真,不包含返回假。
not in 右侧的内容里是否不包含左侧的内容。不包含返回真,包含返回假。
x=22 in srf03 print(x) ##有则True ##无则False
x=32 not in srf03 print(x)
用法 键名字.clear()
pm = {1: "一", 2: "二", 3: "三"} pm.clear() print(pm) ##{}
浅拷贝 copy
用法 键名字.copy
pm = {1: "一", 2: "二", 3: "三"} pm01=pm.copy() print(pm01)
用法 键名字.pop(里加键)
pm = {1: "一", 2: "二", 3: "三"} print(pm01.pop(3)) ##三 print(pm) ##{1: '一', 2: '二'}
随机删一个项
pm01 = {1: "一", 2: "二", 3: "三"} print(pm01.popitem()) print(pm01)