知妳网 知妳网-知妳所想,懂妳所需

知妳网

知妳网知你所想为你解忧最懂你的网站

python中字典如何取值

1. 直接通过键访问

使用方括号 `[]` 直接根据键取值:

python中字典如何取值

python

student = {'name': 'Alice', 'age': 20}

print(student['name']) 输出: Alice

  • 特点:若键不存在,会抛出 `KeyError` 异常。
  • 适用场景:确定键存在时使用。
  • 2. 使用 `get` 方法

    通过 `get(key, default=None)` 安全取值:

    python

    print(student.get('name')) 输出: Alice

    print(student.get('grade', 'N/A')) 输出: N/A(键不存在时返回默认值)

  • 特点:键不存在时返回 `None` 或指定的默认值,避免报错。
  • 3. 处理嵌套字典

    逐层访问嵌套结构:

    python

    student = {'info': {'name': 'Alice', 'age': 20}, 'grades': [85, 90]}

    print(student['info']['age']) 输出: 20

    print(student['grades'][0]) 输出: 85

    使用 get 逐层安全访问

    print(student.get('info', {}).get('age')) 输出: 20(即使 'info' 不存在也不会报错)

    4. 检查键是否存在

  • 使用 `in` 关键字:
  • python

    if 'name' in student:

    print(student['name'])

  • 异常处理(`try-except`):
  • python

    try:

    value = student['grade']

    except KeyError:

    value = 'N/A'

    5. 其他实用方法

  • 获取所有键、值、键值对
  • python

    keys = student.keys 所有键(视图对象)

    values = student.values 所有值(视图对象)

    items = student.items 键值对元组的列表(视图对象)

  • `setdefault`:若键不存在,设置默认值并返回:
  • python

    grade = student.setdefault('grade', 'A') 插入 'grade': 'A' 并返回 'A'

  • 批量获取多个键的值
  • python

    from operator import itemgetter

    getter = itemgetter('name', 'age')

    print(getter(student)) 输出: ('Alice', 20)

    总结

  • 直接访问 `[]`:适合键一定存在的场景。
  • `get` 方法:避免 `KeyError`,可设置默认值。
  • 嵌套字典:逐层访问或结合 `get` 逐层处理。
  • 键的存在性检查:`in` 或 `try-except` 结构。
  • 高级操作:`setdefault`、`itemgetter` 等按需使用。
  • 根据场景选择合适方法,确保代码健壮性。例如,优先使用 `get` 处理不确定的键,而直接访问适合明确键存在的场景。