python字典索引取值

 2025-05-18  阅读 4  评论 0

摘要:在Python中,字典(dict)通过键(key)来索引取值,而不是通过数字索引。以下是常见的操作方法及注意事项:
1. 基本取值方法
直接通过键访问:使用方括号`[]`指定键名。若键不存在,会抛

在Python中,字典(dict)通过键(key)来索引取值,而不是通过数字索引。以下是常见的操作方法及注意事项:

python字典索引取值

1. 基本取值方法

  • 直接通过键访问:使用方括号`[]`指定键名。若键不存在,会抛出`KeyError`。
  • python

    d = {'name': 'Alice', 'age': 25}

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

  • 使用`get`方法:避免键不存在时的错误,可设置默认返回值(默认为`None`)。
  • python

    print(d.get('address')) 输出:None

    print(d.get('address', 'N/A')) 输出:N/A

    2. 嵌套字典取值

    逐层通过键访问:

    python

    nested_dict = {'person': {'name': 'Bob', 'age': 30}}

    print(nested_dict['person']['name']) 输出:Bob

    3. 处理键不存在的情况

  • 检查键是否存在
  • python

    if 'address' in d:

    print(d['address'])

    else:

    print('Key not found')

  • 设置默认值(推荐):
  • python

    print(d.get('address', '默认值'))

    4. 通过顺序访问键(不推荐)

    虽然Python 3.7+的字典保留插入顺序,但依赖顺序访问可能影响代码可读性。若需按位置访问:

    python

    keys = list(d.keys)

    first_key = keys[0]

    print(d[first_key]) 输出第一个插入的键对应的值

    5. 常见错误

  • 拼写错误或大小写不一致:如将`'name'`写成`'Name'`。
  • 错误类型键:键必须是不可变类型(如字符串、数字、元组),列表不能作为键。
  • 示例代码

    python

    基本用法

    student = {'name': 'John', 'age': 22, 'courses': ['Math', 'Physics']}

    print(student['age']) 22

    print(student.get('phone', 'N/A')) N/A

    嵌套字典

    data = {'class': {'students': {'name': 'Alice'}}}

    print(data['class']['students']['name']) Alice

    处理键不存在

    key = 'email'

    value = student.get(key, '未提供')

    print(f"{key}: {value}") email: 未提供

    总结

  • 优先使用`d[key]`或`d.get(key)`通过键直接取值。
  • 嵌套字典逐层访问。
  • 避免依赖顺序,除非明确字典的有序性且必要。
  • 使用`get`或检查键是否存在来增强代码健壮性。

    版权声明: 知妳网保留所有权利,部分内容为网络收集,如有侵权,请联系QQ793061840删除,添加请注明来意。

    原文链接:https://www.6g9.cn/qwsh/dded8AD5QVlFWAg.html

    发表评论:

    关于我们
    知妳网是一个专注于知识成长与生活品质的温暖社区,致力于提供情感共鸣、实用资讯与贴心服务。在这里,妳可以找到相关的知识、专业的建议,以及提升自我的优质内容。无论是职场困惑、情感心事,还是时尚美妆、健康生活,知妳网都能精准匹配妳的需求,陪伴妳的每一步成长。因为懂妳,所以更贴心——知妳网,做妳最知心的伙伴!
    联系方式
    电话:
    地址:广东省中山市
    Email:admin@qq.com

    Copyright © 2022 知妳网 Inc. 保留所有权利。 Powered by

    页面耗时0.1444秒, 内存占用1.69 MB, 访问数据库19次