暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基础数据类型-字典(待修改)

amazingweiwei 2021-07-20
322
    """
    # 创建字典
    dic1 = {'name':'zew', 'age':18, 'sex':'男'}
    print(dic1)
    dic2 = dict(one = 1, two = 2, three = 3) # 自动拆包
    print(dic2)
    dic3 = dict((('one', 1),('tow', 2),('three', 3)))
    print(dic3)
    dic4 = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
    print(dic4)
    dic5 = {k : v for k, v in [('one', 1),('two', 2),('three', 3)]}
    print(dic5)
    dic6 = dict.fromkeys('1234', 'zew')
    print(dic6)


    # 1、增
    dic7 = {}
    # 通过键值对直接增加,如果key存在,则改变key对应的value值
    dic7['name'] = 'zew'
    print(dic7)
    dic7['name'] = 'ljx'
    print(dic7)
    # setdefault 关键字,如果key不存在,则增加key-value,如果key存在,则不改变key对应的值;
    # 所以setdefault主要用来在dict中添加键值对;
    # setdefault有返回值
    dic7.setdefault('age', 18) # {'name': 'ljx', 'age': 18}
    print(dic7)
    age = dic7.setdefault('age', '20') # {'name': 'ljx', 'age': 18}
    print(dic7)
    print(age) # 18




    # 2、删
    # pop 通过键删除键值对,有返回值,可设置返回值
    dic = {'name':'zew', 'age':18, 'sex':0}
    sex = dic.pop('sex')
    print(dic,sex) # {'name': 'zew', 'age': 18} 0
    hobby = dic.pop('hobby', '无此键值对')
    print(dic, hobby) # {'name': 'zew', 'age': 18} 无此键值对


    # popitem 3.5版本之前为随机删除,3.6之后为删除最后一个,有返回值
    print(dic) # {'name': 'zew', 'age': 18}
    flag = dic.popitem()
    print(dic, flag) # {'name': 'zew'} ('age', 18)


    # clear 清空
    print(dic) # {'name': 'zew'}
    dic.clear()
    print(dic) # {}


    # del a.通过key删除键值对 b.删除整个字典
    dic = {'name':'zew', 'age':18, 'sex':0}
    del dic['name']
    print(dic) # {'age': 18, 'sex': 0}
    del dic
    print(dic) # NameError: name 'dic' is not defined




    # 3、改
    # 通过键直接改值
    dic = {'name':'zew', 'age':18, 'sex':0}
    dic['name'] = 'ljx'
    print(dic) # {'name': 'ljx', 'age': 18, 'sex': 0}
    # update key不存在则追加,存在则改变key对应的value值
    dic.update(hobby = 'run')
    print(dic) # {'name': 'ljx', 'age': 18, 'sex': 0, 'hobby': 'run'}
    dic.update(name = 'weij')
    print(dic) # {'name': 'weij', 'age': 18, 'sex': 0, 'hobby': 'run'}
    # update 对列表中的元组拆包,追加到原字典
    dic.update([(1,'a'),(2,'b'),(3,'c'),(4,'d')])
    print(dic)
    # update 将字典追加到原字典,如果字典中的key在原字典中存在,则更新key对应的value值
    dic2 = {'name':'zew', 'weight':178}
    print(dic) # {'name': 'weij', 'age': 18, 'sex': 0, 'hobby': 'run', 1: 'a', 2: 'b', 3: 'c', 4: 'd'}
    dic.update(dic2)
    print(dic) # {'name': 'zew', 'age': 18, 'sex': 0, 'hobby': 'run', 1: 'a', 2: 'b', 3: 'c', 4: 'd', 'weight': 178}
    print(dic2) # {'name': 'zew', 'weight': 178}




    # 4、查
    # 直接dic[key],key不存在时会报错
    dic = {'name':'zew', 'age':18, 'sex':0}
    print(dic['name'])
    # print(dic['hobby']) # KeyError: 'hobby'


    # get关键字,有返回值;key不存在时,返回None,可设置返回值
    v = dic.get('name')
    print(v) # zew
    v = dic.get('hobby')
    print(v) # None
    v = dic.get('hobby', 'Key不存在')
    print(v) # Key不存在


    # keys 关键字,获取字典所有的key
    print(dic.keys()) # dict_keys(['name', 'age', 'sex'])
    # 转换成列表
    print(list(dic.keys())) # ['name', 'age', 'sex']
    # 遍历key
    for key in dic.keys():
    print(key)


    # values 关键字,获取字典所有的value
    print(dic.values()) # dict_values(['zew', 18, 0])
    # 转换成列表
    print(list(dic.values())) # ['zew', 18, 0]
    # 遍历value
    for value in dic.values():
    print(value)


    # items 关键字
    print(dic.items()) # dict_items([('name', 'zew'), ('age', 18), ('sex', 0)])
    # 转换成原则
    print(tuple(dic.items())) # (('name', 'zew'), ('age', 18), ('sex', 0))
    # 遍历items并将元组拆包
    for k,v in dic.items():
    print(k, v)
    """


    # 列表的嵌套
    dic = {
    'name':'汪峰',
    'age':48,
    'wife':[{'name':'国际章','age':38}],
    'children':{'girl_first':'小苹果','girl_second':'小怡','girl_three':'顶顶'}
    }


    # 1. 获取汪峰的名字。
    print(dic.get('name'))
    # 2.获取这个字典:{'name':'国际章','age':38}。
    print(dic.get('wife')[0]) # {'name': '国际章', 'age': 38}
    # 3. 获取汪峰妻子的名字。
    print(dic.get('wife')[0]['name']) # 国际章
    # 4. 获取汪峰的第三个孩子名字。
    print(dic['children'].get('girl_three')) # 顶顶


    文章转载自amazingweiwei,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论