字典
1.作用:记录一组数据
2.定义:{}内用逗号分隔开多个key:value,其中value可以使任意类型,但是key必须是不可变类型,且不能重复
2.1新建一个字典的四种方式
#方式一:d={'k1':111,(1,2,3):222} # d=dict(...) print(d['k1']) print(d[(1,2,3)]) print(type(d))#方式二:
d=dict(x=1,y=2,z=3)print(d,type(d))#方式三:info=[
['name','egon'],
('age',18),
['gender','male']
]# res=dict(info)
print(res)#方式四:快速初始化一个字典keys=['name','age','gender']d={}
d={}.fromkeys(keys,None)
print(d)
内置方法
1.按key取值:可存可取
若key存在可以修改
若key不存在可以创建新的key:value
2.len()
有几个key就有多长
ps:相同的key只取最后一个
d={'k1':111,'k2':2222,'k1':3333,'k1':4444} len(d) #2
成员运算符(in/not in)
ps:根据key来判断
d={'k1':111,'k2':2222} print('k1' in d) #True print(111 in d) #False
删除
4.1 del删除
通过key来删除一对key:value
4.2 pop删除d={'k1':111,'k2':2222} del d['k1'] print(d) #{'k2': 2222}
根据key删除元素,返回删除key对应的那个value值
d={'k1':111,'k2':2222} res=d.pop('k2') print(d) #{'k1': 111} print(res) #2222
随机删除,返回元组d={'k1':111,'k2':2222} res=d.popitem() print(d) #{'k1': 111} print(res) #('k2', 2222)
5.键keys(),值values(),键值对items() =>在python3中得到的是老母鸡
d={'k1':111,'k2':2222} 在python2中 >>> d={'k1':111,'k2':2222} >>> >>> d.keys() ['k2', 'k1'] >>> d.values() [2222, 111] >>> d.items() [('k2', 2222), ('k1', 111)] >>> dict(d.items()) {'k2': 2222, 'k1': 111}
循环
for k in d.keys(): print(k) for k in d: print(k) for v in d.values(): print(v) for k,v in d.items(): print(k,v)
print(list(d.keys())) print(list(d.values())) print(list(d.items()))
需要掌握的内置方法
7.1 clear()清除
d={'k1':111} d.clear() print(d) #{}
7.2 pdate()更新字典
ps:更新列表,可以添加列表没有的内容,可以替换已有的内容的值
d={'k1':111} d.update({'k2':222,'k3':333,'k1':111111111111111}) print(d) #{'k1': 111111111111111, 'k2': 222, 'k3': 333}
7.3 get() 根据key取值 若值不存在也不会报错 返回None
d={'k1':111} print(d['k2']) # key不存在则报错
print(d.get('k1')) # 111 print(d.get('k2')) # key不存在不报错,返回None
7.4. d.setdefault()
如果key有则不添加,返回字典中key对应的值
info={'name':'egon'} res=info.setdefault('name','egon') print(info) print(res) {'name': 'egon'} egon
如果key没有则添加,返回字典中key对应的值
info={} res=info.setdefault('name','egon') print(info) print(res) {'name': 'egon'} egon