1.字典的增加
d = dict(a=1, b=2)
添加或者更改key-value对
d['g'] = 10
d['a'] = 10
print(d) 结果为:{'a':10,'b':2,'g':10}
update:
如果key值已经存在, 更新value值;
如果key值不存在, 添加key-value值;
d.update({'a':4, 'f':1})
print(d) 结果为:{'a':4,'f':1,'b':2,'g':10}
setdefault
如果key值已经存在, 不做修改;
如果key值不存在, 添加key-value值;默认情况下value值为None
d.setdefault('g',8 )
print(d) 结果为:{'a':4,'f':1,'b':2,'g':10}
2.字典的删除
d = dict(a=1, b=2, c=3)
pop:弹出指定key-value值 实际是删除a在d里的key-value值
d.pop('a')
print(d)
结果为:{'b':2,'c':3}
popitem 删除字典中最后一组key-value值
d.popitem()
print(d) 结果为:{'a':1,'b':2}
del d['a'] 指定删除a的key-value值
print(d) 结果为:{'b':2,'c':3}
d.clear() 清空字典
print(d) 结果为:{}
3.字典的修改与查看
d={'sss':20,'www':30}
print(d.keys( )) 打印字典里所有的key值 结果为:dict_keys( ['www','sss'] )
print(d.values( )) 打印字典里所有的value值
print(d.items( )) 打印字典里所有的key-value值 结果为:dict_items( [ ('www',30),('sss',20) ] )
遍历
services={'aa':10,'bb':20,'cc':30}
for k,v in services.items( ):
print(k , '--->', v)
结果为:aa---10 bb---20 cc---30
for k in services:
print(k, '--->', services[k])
这两组命令等价
查看指定key对应的value值, 注意: key不存在, 就会报错
print(services['aa']) 结果为:10
print(services['https']) 会报错
if 'aa' in services:
print(services['aa']) 结果为;10
else:
print('key not exist')
get方法获取指定可以对应的value值
如果key值存在, 返回对应的value值;
如果key值不存在, 默认返回None, 如果需要指定返回的值, 传值即可;
print(services.get('https', 'key not exist')) 因为https在字典里不存在 所以返回‘key not exist’
4.元组去重与字典去重
li=(1,2,3,4,5,3,5)
print(tople(set(li)) 结果为:(1,2,3,4,5) 通过把他转换为集合的方式去重
print({.fromkeys(li).keys( )) 去重成功 但转化成了字典的key形式
5.小插曲
grade={'a':‘优秀‘,’b':'良好‘,‘c':'及格‘}
n=input("请输入:")
if n in grade:
print(grade[n])
else:
print("输入无效")
实验结果: d 输入无效 a 优秀 b 良好
6.练习
计算句子中各字符出现的频数 例:
he llo 表示为:d={'h':1,'e':1,' ':1,'l':2,'o':1}
s=input()
worddict={}
for i in s:
if i not in worddict:
worddict[i]=1
else:
worddict[i]+=1
print(worddict)
如果输入 hel lo 那么输出为{'h':1,'e':1,'o':1,'l':2,' ':1}