Python 字典(Dictionary)核心知识点

 

字典是 Python 中无序、可变的键值对(key-value)集合,键(key)唯一且必须是不可变类型(如字符串、数字、元组),值(value)可任意类型。

1. 字典的创建

  • 直接赋值:最常用方式,用大括号 {} 包裹键值对,键值间用 : 分隔,键值对间用 , 分隔。
    示例:my_dict = {"name": "Alice", "age": 25, "is_student": False}
  • dict() 函数:通过可迭代对象或关键字参数创建。
    示例 1(可迭代对象):my_dict = dict([("name", "Bob"), ("age", 30)])
    示例 2(关键字参数):my_dict = dict(name="Charlie", age=28)
  • 空字典:empty_dict = {} 或 empty_dict = dict()

2. 字典的核心操作

(1)访问值(通过键)

  • 直接用 字典[键] 访问,若键不存在会报错 KeyError
    示例:print(my_dict["name"]) # 输出 "Alice"
  • 用 get(key, default) 访问,键不存在时返回默认值(默认值可选,不填则返回 None),避免报错。
    示例:print(my_dict.get("gender", "Unknown")) # 输出 "Unknown"

(2)添加 / 修改键值对

  • 若键不存在,字典[键] = 值 会添加新键值对。
    示例:my_dict["gender"] = "Female" # 新增键值对
  • 若键已存在,字典[键] = 新值 会修改对应的值。
    示例:my_dict["age"] = 26 # 将 "age" 的值从 25 改为 26

(3)删除键值对

  • del 字典[键]:删除指定键的键值对,键不存在会报错。
    示例:del my_dict["is_student"]
  • 字典.pop(key, default):删除并返回指定键的值,键不存在时返回默认值(避免报错)。
    示例:my_dict.pop("gender", "None")
  • 字典.clear():清空字典中所有键值对,字典变为空字典。
    示例:my_dict.clear()

3. 字典的常用方法

方法功能描述示例(基于 my_dict = {"name": "Alice", "age":25})
keys() 返回所有键的可迭代对象(类似列表) print(list(my_dict.keys())) # 输出 ["name", "age"]
values() 返回所有值的可迭代对象 print(list(my_dict.values())) # 输出 ["Alice", 25]
items() 返回所有键值对的可迭代对象(每个元素是元组) print(list(my_dict.items())) # 输出 [("name","Alice"), ("age",25)]
update(other_dict) 用另一个字典的键值对更新当前字典(覆盖重复键) my_dict.update({"age":26, "gender":"Female"})
copy() 复制字典(浅拷贝,避免修改原字典时影响副本) new_dict = my_dict.copy()

4. 字典的遍历

  • 遍历键:直接循环字典,默认遍历键。
    示例:
     
     
    for key in my_dict:
        print(key)  # 输出 "name", "age"
    
     
  • 遍历值:用 values() 方法。
    示例:
     
     
    for value in my_dict.values():
        print(value)  # 输出 "Alice", 25
    
     
  • 遍历键值对:用 items() 方法,通过元组解包获取键和值。
    示例:
     
     
    for key, value in my_dict.items():
        print(f"{key}: {value}")  # 输出 "name: Alice", "age: 25"
    
     

5. 字典的注意事项

  1. 键的唯一性:同一字典中不能有重复的键,重复赋值会覆盖前一个值。
    示例:my_dict = {"a":1, "a":2} # 最终字典为 {"a":2}
  2. 键的不可变性:键必须是不可变类型(字符串、数字、元组),列表(可变)不能作为键。
    错误示例:my_dict = {[1,2]: "list"} # 报错 TypeError
  3. 无序性(Python 3.7+ 已有序):Python 3.7 之前字典无序,3.7 及以后会保留插入顺序,但仍不支持索引访问(需通过键访问)。
posted @ 2025-07-26 21:52  我歌且谣  阅读(6)  评论(0)    收藏  举报