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