Python字典使用(八)

发布时间:2019-08-26 07:16:21编辑:auto阅读(1205)

    字典描述:

    字典是另一种可变容器模型,且可以存储任意类型对象。

    字典的每个键值(key=>value)对用冒号分隔,每对之间用逗号分割,整个字典包括花括号在内,如下所示:

    d={key1:value1,key2:value2}

    键必须是唯一的,但值不必。

    值可以取任何数据类型,但是键是必须不可变的,如字符串、元组或数字。

    如:

    d = {'Alex':'aaa','Wang':'bbb'}
    d1={'Alex':111,'Wang':222}

     

    访问字典的值:

    d = {'Alex':'aaa','Wang':'bbb'}
    #d1={'Alex':111,'Wang':222}

    print(d.keys())  #读取字典所有键
    print(d.values()) #读取字典所有值
    print('d["Alex"]: ',d['Alex'])  #读取某一个键的值,
    # (习惯:引号使用,当需要使用叠加的引号时,注意不要都使用同一种引号。比如全部单引号或者全部双引号,那样会报错。) 比如:print('d[Alex]: ',d['Alex'])
    print("d['Alex1']: ",d['Alex1']) #读取不到键会报错,信息如下KeyError: 'Alex1'

    运行结果:

        print("d['Alex1']: ",d['Alex1'])

    KeyError: 'Alex1'

    dict_keys(['Alex', 'Wang'])

    dict_values(['aaa', 'bbb'])

    d['Alex']:  aaa

     

    增加&查找&删除&修改:

    d = {
        '1':'aaa',
         '2':'bbb',
        '3':'ccc',
        "4":'ddd',
    }
    #d1={'Alex':111,'Wang':222}
    d['5']='fff' #当查询不存在这个键时,就会添加。
    print(d)
    d['1']='111' #当查询存在这个键时,如果值不对就会修改该值。
    print(d)

    d2=d.get('5') #用get方法,找到不存在只会返回None,不会报错
    print(d2)

    #del d['1']#python内置的通用删除方法
    #d.pop('2')#字典里的pop必须指定删除对象
    d.popitem()
    print(d)

    d.clear() #清空字典

    print(d)


    运行结果:

    {'1': 'aaa', '2': 'bbb', '3': 'ccc', '4': 'ddd', '5': 'fff'}

    {'1': '111', '2': 'bbb', '3': 'ccc', '4': 'ddd', '5': 'fff'}

    {'1': '111', '2': 'bbb', '3': 'ccc', '4': 'ddd'}

    {}



    注:

    1. 当查询的键不存在时,会默认添加。

    2. get()查询某个键查询不到时,只会返回None,不会报错。

       

      多级字典的嵌套及操作:

    info ={
        'NJ':{
            '建邺区':['A','B','C'],
            '江宁区':['AA','BB','CC'],
        },
        'SZ':{
            '福田区':['1','2','3'],
            '高新区':['11','22','33'],
        }
    }
    print(info)
    info['NJ']['建邺区'][2]=55   #可以修改键里面的值
    print(info)
    info.setdefault('JD',{'SSS':[1,2]}) #查不到的可以添加 key-value
    print(info)
    info.setdefault('SZ',{'SSS':[1,2]}) #无法修改 键对应的值
    print(info)

    运行结果:

    {'NJ': {'建邺区': ['A', 'B', 'C'], '江宁区': ['AA', 'BB', 'CC']}, 'SZ': {'福田区': ['1', '2', '3'], '高新区': ['11', '22', '33']}}

    {'NJ': {'建邺区': ['A', 'B', 55], '江宁区': ['AA', 'BB', 'CC']}, 'SZ': {'福田区': ['1', '2', '3'], '高新区': ['11', '22', '33']}}

    {'NJ': {'建邺区': ['A', 'B', 55], '江宁区': ['AA', 'BB', 'CC']}, 'SZ': {'福田区': ['1', '2', '3'], '高新区': ['11', '22', '33']}, 'JD': {'SSS': [1, 2]}}

    {'NJ': {'建邺区': ['A', 'B', 55], '江宁区': ['AA', 'BB', 'CC']}, 'SZ': {'福田区': ['1', '2', '3'], '高新区': ['11', '22', '33']}, 'JD': {'SSS': [1, 2]}}

     

    其他操作:

    d = {
        '1':'aaa',
         '2':'bbb',
        '3':'ccc',
        "4":'ddd',
    }
    a ={
        '1':'111',
        'd':123,
        888:999,
    }
    d.update(a)  #合并列表,并且以被合并的数据为最新的数据更新字典
    print(d)
    print(d.items()) #转换为列表

    运行结果:

    {'1': '111', '2': 'bbb', '3': 'ccc', '4': 'ddd', 'd': 123, 888: 999}

    dict_items([('1', '111'), ('2', 'bbb'), ('3', 'ccc'), ('4', 'ddd'), ('d', 123), (888, 999)])

     

    循环读取字典:

    for key in d:
        print(key,d[key])

    for item,key in d.items(): #会先把dictionary转成list,数据里大时莫用
        print(item,key)

    运行结果:

    1 aaa

    2 bbb

    3 ccc

    4 ddd

    1 aaa

    2 bbb

    3 ccc

    4 ddd


关键字

上一篇: FastDFS的高级用法(3)

下一篇: ns3 introduce