Python字典操作详解

1 创建字典

  • 使用花括号创建空字典:
  • empty_dict = {}
    print(empty_dict)  # 输出: {}
  • 直接初始化键值对:
  • person = {
        "name": "Alice",
        "age": 25,
        "city": "New York"
    }
    print(person)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
  • 使用dict()构造函数:
  • # 使用关键字参数
    student = dict(name="Bob", age=20, major="Computer Science")
    print(student)  # 输出: {'name': 'Bob', 'age': 20, 'major': 'Computer Science'}
    
    # 使用键值对列表
    pairs = [("name", "Charlie"), ("age", 30)]
    user = dict(pairs)
    print(user)  # 输出: {'name': 'Charlie', 'age': 30}

    2 访问字典元素

  • 通过键访问值:
  • person = {"name": "Alice", "age": 25}
    print(person["name"])  # 输出: Alice
  • 使用get()方法(避免KeyError):
  • print(person.get("age"))      # 输出: 25
    print(person.get("gender"))   # 输出: None
    print(person.get("gender", "unknown"))  # 输出: unknown

    3 修改字典

  • 更新已有键的值:
  • person["age"] = 26
    print(person)  # 输出: {'name': 'Alice', 'age': 26}
  • 添加新键值对:
  • person["email"] = "alice@example.com"
    print(person)  # 输出: {'name': 'Alice', 'age': 26, 'email': 'alice@example.com'}
  • 使用update()批量更新:
  • person.update({"age": 27, "city": "Boston"})
    print(person)  # 输出: {'name': 'Alice', 'age': 27, 'email': 'alice@example.com', 'city': 'Boston'}

    4 删除字典元素

  • 使用del删除键值对:
  • del person["email"]
    print(person)  # 输出: {'name': 'Alice', 'age': 27, 'city': 'Boston'}
  • 使用pop()删除并返回值:
  • age = person.pop("age")
    print(age)        # 输出: 27
    print(person)     # 输出: {'name': 'Alice', 'city': 'Boston'}
  • 使用popitem()删除最后插入的键值对:
  • last_item = person.popitem()
    print(last_item)  # 输出: ('city', 'Boston')
    print(person)     # 输出: {'name': 'Alice'}

    5 字典常用方法

  • 获取所有键:
  • person = {"name": "Alice", "age": 25}
    keys = person.keys()
    print(list(keys))  # 输出: ['name', 'age']
  • 获取所有值:
  • values = person.values()
    print(list(values))  # 输出: ['Alice', 25]
  • 获取所有键值对:
  • items = person.items()
    print(list(items))  # 输出: [('name', 'Alice'), ('age', 25)]
  • 检查键是否存在:
  • print("name" in person)  # 输出: True
    print("email" in person) # 输出: False

    6 字典遍历

  • 遍历所有键:
  • for key in person:
        print(key, person[key])
    # 输出:
    # name Alice
    # age 25
  • 使用items()遍历键值对:
  • for key, value in person.items():
        print(f"{key}: {value}")
    # 输出:
    # name: Alice
    # age: 25

    7 字典嵌套

  • 创建嵌套字典:
  • students = {
        "class1": {
            "Alice": {"age": 20, "grade": "A"},
            "Bob": {"age": 22, "grade": "B"}
        },
        "class2": {
            "Charlie": {"age": 21, "grade": "A+"}
        }
    }
  • 访问嵌套字典元素:
  • print(students["class1"]["Alice"]["age"])  # 输出: 20

    8 字典推导式

  • 创建平方字典:
  • squares = {x: x**2 for x in range(1, 6)}
    print(squares)  # 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
  • 过滤字典:
  • original = {"a": 1, "b": 2, "c": 3, "d": 4}
    filtered = {k: v for k, v in original.items() if v % 2 == 0}
    print(filtered)  # 输出: {'b': 2, 'd': 4}

    9 字典排序

  • 按键排序:
  • scores = {"Alice": 85, "Bob": 92, "Charlie": 78}
    sorted_by_key = dict(sorted(scores.items()))
    print(sorted_by_key)  # 输出: {'Alice': 85, 'Bob': 92, 'Charlie': 78}
  • 按值排序:
  • sorted_by_value = dict(sorted(scores.items(), key=lambda item: item[1]))
    print(sorted_by_value)  # 输出: {'Charlie': 78, 'Alice': 85, 'Bob': 92}

    10 字典合并(Python 3.9+)

  • 使用|操作符合并:
  • dict1 = {"a": 1, "b": 2}
    dict2 = {"b": 3, "c": 4}
    merged = dict1 | dict2
    print(merged)  # 输出: {'a': 1, 'b': 3, 'c': 4}
  • 使用|=更新:
  • dict1 |= {"d": 5, "e": 6}
    print(dict1)  # 输出: {'a': 1, 'b': 2, 'd': 5, 'e': 6}

    11 总结

Python字典是一种高效的数据结构,提供了灵活的键值存储方式。通过掌握字典的创建、访问、修改、删除等基本操作,以及keys()、values()、items()等核心方法,开发者可以有效处理各种数据组织需求。字典推导式和排序功能进一步增强了其处理能力,而Python 3.9+引入的合并操作符则简化了字典组合操作。熟练运用这些技术将显著提升Python编程的效率和代码质量。

发表回复

后才能评论