【Python】什么是字典(Dictionary)?

什么是字典(Dictionary)?

字典(Dictionary)是 Python 中一种 可变(mutable)的数据结构,用于存储键值对(key-value pairs)。字典通过 (key)来快速查找 (value)。与列表或元组不同,字典是通过键来访问值,而不是通过索引。

字典在很多编程语言中都有类似的数据结构(比如哈希表、关联数组等)。

字典的特点:

  • 无序:字典中的元素是无序的(直到 Python 3.7,字典元素是按插入顺序存储的,但这不是字典的核心特性)。你不能像列表一样通过索引访问字典中的元素。
  • 键值对:字典中的每个元素是一个键值对,即每个键对应一个值。
  • 唯一键:字典中的键是唯一的,不能重复。如果使用相同的键赋值,原有的值会被新值覆盖。
  • 可变:字典是可变的,可以添加、删除或更新键值对。
  • 创建字典

    字典可以通过花括号 {} 来创建,键和值之间用冒号 : 分隔,多个键值对之间用逗号 , 分隔。

    示例:
    # 创建一个字典
    my_dict = {"name": "Alice", "age": 25, "city": "New York"}
    
    # 创建一个空字典
    empty_dict = {}
    
    # 创建一个包含不同数据类型的字典
    person = {"name": "Bob", "age": 30, "is_student": False, "courses": ["Math", "Science"]}
    

    访问字典的元素

    可以通过字典的 来访问对应的值。

    my_dict = {"name": "Alice", "age": 25, "city": "New York"}
    
    # 通过键访问值
    print(my_dict["name"])  # 输出 Alice
    print(my_dict["age"])   # 输出 25
    

    常见的字典操作

    添加/更新键值对: 如果键已存在,值会被更新;如果键不存在,则会添加新的键值对

    my_dict = {"name": "Alice", "age": 25}
    
    # 添加新的键值对
    my_dict["city"] = "New York"
    
    # 更新已有的键值对
    my_dict["age"] = 26
    
    print(my_dict)  # 输出 {'name': 'Alice', 'age': 26, 'city': 'New York'}
    

    删除键值对: 使用 del 关键字或 pop() 方法删除键值对。

    my_dict = {"name": "Alice", "age": 25, "city": "New York"}
    
    # 使用 del 删除键值对
    del my_dict["city"]
    
    # 使用 pop() 删除键值对
    age = my_dict.pop("age")  # 删除并返回键 "age" 对应的值
    
    print(my_dict)  # 输出 {'name': 'Alice'}
    print(age)      # 输出 25
    

    查看所有的键、值和键值对

    my_dict = {"name": "Alice", "age": 25, "city": "New York"}
    
    print(my_dict.keys())    # 输出 dict_keys(['name', 'age', 'city'])
    print(my_dict.values())  # 输出 dict_values(['Alice', 25, 'New York'])
    print(my_dict.items())   # 输出 dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])
    
  • keys():返回字典中所有的键。
  • values():返回字典中所有的值。
  • items():返回字典中所有的键值对。
  • 字典的查找操作

    my_dict = {"name": "Alice", "age": 25}
    
    # 使用 get() 方法查找键值对
    print(my_dict.get("name"))      # 输出 Alice
    print(my_dict.get("city", "Unknown"))  # 输出 Unknown(因为 "city" 不在字典中)
    
  • get():通过键查找对应的值。如果键不存在,可以设置一个默认值。
  • 字典的清空: 使用 clear() 方法可以清空字典中的所有元素。

    my_dict = {"name": "Alice", "age": 25}
    my_dict.clear()
    print(my_dict)  # 输出 {}
    

    字典的长度: 使用 len() 函数获取字典中的键值对个数。

    my_dict = {"name": "Alice", "age": 25}
    print(len(my_dict))  # 输出 2
    

    字典的应用场景

  • 存储和查找:字典常用于需要通过唯一标识符(键)快速查找值的场景,例如通过学生 ID 查找学生信息,或者存储配置信息。
  • 数据映射:字典非常适合存储映射关系,比如把国家名称映射到其首都,或把用户名映射到用户的个人资料。
  • JSON 数据:字典的结构与 JSON 格式非常相似,Python 中的字典通常用于表示从 JSON 格式转换来的数据。
  • 字典的优缺点

    优点:
  • 查找速度快:字典使用哈希表实现,查询操作通常具有常数时间复杂度 O(1),比列表等其他数据结构要高效。
  • 灵活性高:字典的键可以是任何不可变类型(如字符串、数字、元组),而值可以是任意类型的数据。
  • 缺点:
  • 无序:字典中的元素是无序的,虽然 Python 3.7+ 中保持了插入顺序,但不能像列表一样按顺序访问元素。
  • 占用内存较大:字典相比列表会占用更多的内存,因为它需要维护哈希表。
  • 总结:

    字典是一个非常强大且灵活的数据结构,它以 键值对 的形式存储数据,通过 来访问对应的 。在需要通过唯一标识符快速查找数据的场景中,字典是非常合适的选择。

    作者:门外的兔子

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【Python】什么是字典(Dictionary)?

    发表回复