python中字典的增删改查及练习

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}

                              

猜你喜欢

转载自blog.csdn.net/weixin_42719822/article/details/81698682