zoukankan      html  css  js  c++  java
  • 031 字典类型内置方法

    一、字典类型内置方法(dict)

    1. 用途:

    存多个值,但每一个值都有一个key与之对应,key对值有描述功能。多用于存的值表示的是不同的状态时,例如存的值有姓名、年龄、身高、体重、爱好。

    2. 定义方式:

    {}内用逗号分隔开多个元素,每一个元素都是key:value的形式,value可以是任意数据类型,而key通常应该是字符串类型,但是key必须为不可变类型。

    3.内置方法:

    3.1 优先掌握

    1. 按key取值,即可取也可改变
    2. 长度len
    3. 成员运算in和not in
    4. 删除del
    5. 键keys()、值values()、键值对items()
    6. 循环

    1.按key取值,即可取也可改变

    print(f"{'按key取值,即可取也可改变':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    print(info_dict['hobby_list'])
    info_dict['age'] = 20
    print(info_dict)
    

    -------------------------------------------按key取值,即可取也可改变-------------------------------------------
    ['dapao', '666', '233']
    {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233'], 'age': 20}

    2.长度len

    print(f"{'长度len':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    print(len(info_dict))
    

    -----------------------------------------------长度len------------------------------------------------
    5

    3.成员运算in和not in

    print(f"{'成员运算in和not in':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    print('name' in info_dict)
    

    -------------------------------------------成员运算in和not in--------------------------------------------
    True

    4.删除del

    print(f"{'del删除':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    del info_dict['name']
    print(info_dict)
    

    -----------------------------------------------del删除------------------------------------------------
    {'gender': 'female', 'hobby_list': ['dapao', '666', '233']}

    5.键keys、值values、键值对items(items用的最多,一般和解压缩一起用)

    print(f"{'键keys、值values、键值对items(items用的最多,一般和解压缩一起用)':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    print(list(info_dict.keys()))  # list
    print(list(info_dict.values()))  # list
    print(list(info_dict.items()))  # list
    

    ----------------------------键keys、值values、键值对items(items用的最多,一般和解压缩一起用)-----------------------------
    ['name', 'gender', 'hobby_list']
    ['wangdapao', 'female', ['dapao', '666', '233']]
    [('name', 'wangdapao'), ('gender', 'female'), ('hobby_list', ['dapao', '666', '233'])]

    6.for循环

    print(f"{'for循环':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    for k, v in info_dict.items():  # 解压缩方式
        print(k, v)
    

    name wangdapao
    gender female
    hobby_list ['dapao', '666', '233']

    3.2 需要掌握

    1. copy拷贝
    2. pop删除
    3. popitem删除键值对
    4. clear清空字典
    5. get获取值
    6. update更新字典
    7. fromkeys由dict.出来,快速造一个字典
    8. setdefault(有则不变,无则往里面追加了值)

    1.copy拷贝

    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    print(info_dict.copy())
    

    -----------------------------------------------copy拷贝-----------------------------------------------
    {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}

    2.pop删除

    print(f"{'pop删除':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    info_dict.pop('name')
    print(info_dict)
    

    -----------------------------------------------pop删除------------------------------------------------
    {'gender': 'female', 'hobby_list': ['dapao', '666', '233']}

    3.popitem删除键值对

    print(f"{'popitem删除键值对':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    info_dict.popitem()  # 早期的时候字典是无序的,是随机删除的,但是由于python3底层优化了字典,让字典看的貌似有序了,所以默认删除最后一个
    print(info_dict)
    

    --------------------------------------------popitem删除键值对--------------------------------------------
    {'name': 'wangdapao', 'gender': 'female'}

    4.clear清空字典

    print(f"{'clear清空字典':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    info_dict.clear()
    print(info_dict)
    

    --------------------------------------------popitem删除键值对--------------------------------------------
    {}

    5.get获取值

    print(f"{'get获取值':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    print(info_dict.get('age'))	# 使用get函数的好处是没有该键值对,则返回None
    print(info_dict.get('name1', 'cyx'))  # 如果有,就返回真正的值;如果没有,默认返回None,也可以指定返回
    

    -----------------------------------------------get获取值-----------------------------------------------
    None
    cyx

    6.update更新字典

    print(f"{'update更新字典':-^100}")
    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    info_dict.update({'a':1})
    print(info_dict)
    

    ---------------------------------------------update更新字典---------------------------------------------
    {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233'], 'a': 1}

    7.fromkeys由dict.出来,快速造一个字典

    # fromkeys由dict.出来,快速造一个字典
    print(f"{'fromkeys由dict.出来,快速造一个字典':-^100}")
    print(dict.fromkeys(['a',2,3,4,5],'baba'))
    

    --------------------------------------fromkeys由dict.出来,快速造一个字典--------------------------------------
    {'a': 'baba', 2: 'baba', 3: 'baba', 4: 'baba', 5: 'baba'}

    8.setdefault(有则不变,无则往里面追加了值)

    info_dict = {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}
    info_dict.setdefault('gender', 123123)  # 有则不变,无则往里面追加了值
    print(info_dict)
    

    -------------------------------------setdefault(有则不变,无则往里面追加了值)-------------------------------------
    {'name': 'wangdapao', 'gender': 'female', 'hobby_list': ['dapao', '666', '233']}

    4. 存一个值还是多个值:

    多个值

    5. 有序or无序:

    无序

    6. 可变 or 不可变(重点 可变:值变id不变,不可哈希| 不可变:值变id也变,可哈希):

    可变

  • 相关阅读:
    CRM安装过程问题总结
    SQL Server Active Directory Helper 无法启动
    CRM导出Excel记录的最大数量
    CRM名词解释
    CRM根据不同的角色过滤视图
    asp.net C# webservice安全性方案
    利用MSCRM4.0 Trace功能跟踪详细错误信息
    事件1058处理过程,处理组策略失败.
    在 Windows Server 2003 中配置网络负载平衡
    对比SQL中简单嵌套查询与非嵌套查询的异同
  • 原文地址:https://www.cnblogs.com/XuChengNotes/p/11303814.html
Copyright © 2011-2022 走看看