• (Python基础)字典的使用


     

     以下代码是字典的查,增,改,删的基本使用方法。

     1 #-*-coding:utf-8-*-
     2 _author_: Keep
     3 
     4 #字典是无序的
     5 info = {
     6     '1':'张飞',
     7     '2':'刘备',
     8     '3':'关羽',
     9     '4':'曹操',
    10     '5':'赵子龙',
    11     '6':'诸葛亮',
    12 }
    13 print(info)
    14 #查找
    15 #print(info['1'])#查找
    16 print(info.get('6'))#查找
    17 print('5' in info)#等同 py2.x 的 info.has_key('5')    查找字典里是否有,如果有返回True,否则返回Flase
    18 
    19 info['4'] = '司马懿'#更改指定的信息
    20 info['7'] = '吕布'#创建新的信息
    21 #删除
    22 del info['5']
    23 info.pop('7')
    24 info.popitem()#随机删除
    25 
    26 print(info)
    View Code

     以下代码是字典的多级嵌套的使用

     1 #-*-coding:utf-8-*-
     2 #_author_: Keep
     3 relation = {
     4     '曹操':{
     5         '曹昂':['字子脩','刘氏所生'],
     6         '曹丕':['字子恒','卞夫人嫡长子'],
     7         '曹彰':['字子文','武宣卞皇后第二子'],
     8         '曹值':['字子建','武宣卞皇后第三子']
     9     },
    10     '刘备':{
    11         '刘禅':['字公嗣','甘夫人所生'] ,
    12         '刘永':['字公寿','吴懿之妹所生'] ,
    13         '刘理':['字奉孝','生母不明']
    14     },
    15     '诸葛亮':{
    16         '诸葛瞻':['字思远','生母不明']
    17     }
    18 }
    19 relation['诸葛亮']['诸葛瞻'][1] += ',有待考察'#增加信息
    20 print(relation)
    21 print(relation['诸葛亮']['诸葛瞻'][1])
    View Code

     其他用法

    print(info.values())#返回字典的值
    print(info.keys())#返回字典的key
    setdefault的用法
    relation.setdefault('司马懿',{'司马昭':['字子上']})#setdefault的用法,寻找字典中是否有指定寻找的,没有就新加入进去
    print(relation)
    

     update用法

    info = {
        '1':'张飞',
        '2':'刘备',
        '3':'关羽',
        '4':'曹操',
        '5':'赵子龙',
        '6':'诸葛亮',
    }
    a = {
    
        '1':'司马懿',
        '8':'曹丕',
        '9':'周瑜'
    }
    info.update(a)#有更新的就覆盖,没有的话就创建新的
    print(info)
    

    item用法

    >>>print(info.items())#把字典转成列表
    dict_items([('1', '司马懿'), ('2', '刘备'), ('3', '关羽'), ('4', '曹操'), ('5', '赵子龙'), ('6', '诸葛亮'), ('8', '曹丕'), ('9', '周瑜')])
    

     循环dict 

    for i in info:
        print(i,info[i])#循环,打印value和key
    
    for k,v in info.items():#会先把dict转成list,数据里大时莫用
        print(k,v)
    

      

     

     

  • 相关阅读:
    [leetcode] Bulls and Cows
    Win7 系统所有应用颜色调整
    一道题反映Java的类初始化过程
    翻转二叉树(深搜-先序遍历-交换Node)
    在一个数组中,除了两个数外,其余数都是两两成对出现,找出这两个数,要求时间复杂度O(n),空间复杂度O(1)
    一道随机函数题:由rand5()生成rand7()
    求一条直线通过的最大点数
    菜根谭#236
    菜根谭#235
    菜根谭#234
  • 原文地址:https://www.cnblogs.com/keepma/p/10411513.html
Copyright © 2020-2023  润新知