zoukankan      html  css  js  c++  java
  • Python基础之字典

    字典初识

    字典的认识

    首先,我们来认识一下字典:

    # 定义一个字典
    user_dict = {"name": "zhangsan", "age": 20, "height": 181}
    
    print(user_dict)
    # {'name': 'zhangsan', 'age': 20, 'height': 181}
    

    字典的作用和定义语法

    • 字典是除列表之外最灵活的数据类型;
    • 字典同样可以用来存储多个数据,但字典通常用来存储 描述一个物体的相关信息
    • 列表元组中我们更在意的是顺序,按索引顺序取值;在字典中我们更在意的是键和值;
    • 列表元组有序,而字典无序;(补充一下,在pycharm运行下,其实基本都是按定义的键值对顺序输出的)
    • 字典使用键值对存储数据,几对 键值对之间用逗号分隔;键key是索引,值value是数据;键和值之间用冒号:分隔;键必须是唯一的;值可以取任何数据类型,但键必须是字符串,数字或者元组

    字典的定义语法

    变量名 = {"key1": "value1", "key2": "value2", "key3": "value3", ... }
    eg:
    user_dict = {"name": "zhangsan", "age": 20, "height": 181}
    

    字典的定义和取值

    # 定义一个字典
    user_dict = {"name": "zhangsan", "age": 20, "height": 181}
    
    # 注意,字典是个无序的数据集合,字典的每次输出的结果可能顺序不一致
    print(user_dict)
    # 字典取值
    print(user_dict["name"])
    print(user_dict["height"])
    

    字典的基本使用-增删改查

    user_dict = {"name": "zhangsan", "age": 20, "height": 181}
    
    # 取值,注意,如果取值的key不存在,会报错
    print(user_dict["name"])
    
    # 增加/修改
    print(user_dict)
    # 如果key不存在,会新增键值对;存在则进行修改
    user_dict["gender"] = "man"
    user_dict["age"] = 21
    print(user_dict)
    
    # 删除,注意,如果删除键值对 时key不存在,会报错
    user_dict.pop("height")
    print(user_dict)
    

    字典的操作函数

    字典操作函数查看

    在ipython3交互式下,定义一个空字典, 空字典. 按下tab键,即可查看;例如:

    In [1]: user_dict = {}
    
    In [2]: user_dict.
    user_dict.clear       user_dict.items       user_dict.setdefault
    user_dict.copy        user_dict.keys        user_dict.update
    user_dict.fromkeys    user_dict.pop         user_dict.values
    user_dict.get         user_dict.popitem     
    
    In [2]: user_dict.
    

    由此可见,字典的操作函数有:

    user_dict.clear       user_dict.items       user_dict.setdefault
    user_dict.copy        user_dict.keys        user_dict.update
    user_dict.fromkeys    user_dict.pop         user_dict.values
    user_dict.get         user_dict.popitem 
    

    字典常用操作函数罗列

    方法 描述
    len(dict) 获取字典的 键值对 数量
    dict.keys() 所有 key列表
    dict.values() 所有 value列表
    dict.items() 所有 (key,value)元组列表
    dict[key] 从字典取值,key不存在会报错
    dict.get(key) 从字典取值,key不存在不会报错
    del dict[key] 删除指定键值对,key不存在会报错
    dict.pop(key) 删除指定键值对,key不存在会报错
    dict.pop(item) 随机删除一个键值对
    dict.clear() 清空字典
    dict[key] = value key存在,修改value;key不存在,新增键值对
    dict.setdefault(key, value) key存在,不会修改value;key不存在,新增键值对
    dict.update(dict2) 将字典2的数据合并到字典1

    字典操作实操

    user_dict = {"name": "zhangsan", "age": 20, "height": 181}
    
    # 1.统计键值对数量
    print(len(user_dict))  # 3
    
    # 2.合并字典
    # 注意,如果被合并的字典2中有已经存在于字典1中的键值对,新的键值对会覆盖原字典的
    gender = {"gender": "man"}
    user_dict.update(gender)
    print(user_dict)
    # {'name': 'zhangsan', 'age': 20, 'height': 181, 'gender': 'man'}
    
    # 3.请空字典
    user_dict.clear()
    print(user_dict)  # {}
    

    字典其他扩展

    字典 循环遍历

    遍历 就是 依次从字典中获取键值对;
    但在实际开发中,由于字典的每一个键值对保存数据的数据类型时不一样的,所以针对字典的循环遍历的情况不怎么多;

    user_dict = {"name": "zhangsan", "age": 20, "height": 181}
    
    # k 是每次循环中,获取到的键值对的key
    for k in user_dict:
        print("%s: %s"% (k, user_dict[k]))
    
    # name: zhangsan
    # age: 20
    # height: 181
    

    字典的应用场景

    • 使用 多个键值对,存储描述一个物体的相关信息,描述更复杂的数据信息

    • 将多个字典·1放在一个列表中,再进行遍历,在循环内部针对每一个字典进行相同的处理;

      students = [
      {"name": "zhangsan", "age": 19, "height": 175},
      {"name": "lisi", "age": 19, "height": 178}
      ]

      for stu in students:
      # 字典是无序的,列表是有序的,所以会先输出张三的字典,再输出李四的字典,但字典内部顺序不定
      print(stu)
      # {'name': 'zhangsan', 'age': 19, 'height': 175}
      # {'name': 'lisi', 'age': 19, 'height': 178}

  • 相关阅读:
    枚举类型的应用
    动手动脑
    四则运算和验证码--源码
    ATM源码
    javabean+jsp+servlet+jdbc
    四则运算改良
    Java异常
    课后总结
    包装类Integre
    对象验证
  • 原文地址:https://www.cnblogs.com/yifchan/p/python-1-7.html
Copyright © 2011-2022 走看看