如何在 Python 中访问嵌套字典

字典是另一种可变容器模型,且可存储任意类型对象。字典包含多个键值对“key:value”,每个键值对之间用逗号分割,整个字典包括在花括号 {} 中。

嵌套字典允许你以分层的方式存储和访问数据。嵌套字典是一个包含其他字典作为值的字典。这些内层字典中的每一个值也可以包含其他的字典,形成一个层次结构。当你需要以树状结构存储数据时,可以使用嵌套字典,常用于网络开发中处理 JSON 数据。

比如一个包含学生信息的嵌套字典,其中学生 ID 是一个键,学生基本信息以字典形式,作为 ID 的一个值。

students = {
    001: {'name' : 'liming', 'age': '16'},
    002: {'name' : 'wangqiang', 'age': '15'}
}

使用 [] 访问字典元素

可以使用[]通过字典的键(ID)访问学生的基本信息。若要访问基本信息中的特定值,可以使用[]再次调用下一层字典的键。

students = {
    1: {'name' : 'liming', 'age': '16'},
    2: {'name' : 'wangqiang', 'age': '15'}
}
print(students[1])
print(students[1]['name'])
# 输出:
{'name': 'liming', 'age': '16'}
liming

使用 for 循环遍历字典

使用 for 循环遍历字典以获取嵌套字典的所有学生信息。

students = {
    1: {'name' : 'liming', 'age': '16'},
    2: {'name' : 'wangqiang', 'age': '15'}
}
for i in students:
    print(students[i])
# 输出:
{'name': 'liming', 'age': '16'}
{'name': 'wangqiang', 'age': '15'}
students = {
    1: {'name' : 'liming', 'age': '16'},
    2: {'name' : 'wangqiang', 'age': '15'}
}
for id, info in students.items():
    print("\nID:", id)
    for key in info:
        print(key + ':', info[key])
# 输出:
ID: 1
name: liming
age: 16

ID: 2
name: wangqiang
age: 15

分别从嵌套字典中获取键和值

使用 keys() 和 values() 方法,分别从嵌套字典中获取键和值。

students = {
    1: {'name' : 'liming', 'age': '16'},
    2: {'name' : 'wangqiang', 'age': '15'}
}
for i in students:
    print(students[i].keys())
for i in students:
    print(students[i].values())
# 输出:
dict_keys(['name', 'age'])
dict_keys(['name', 'age'])
dict_values(['liming', '16'])
dict_values(['wangqiang', '15'])

安全的访问字典

如果引用不在的键,则会引发异常。为了避免这种异常,可以使用字典的 get() 方法。如果键在字典中,则此方法返回键的值,否则返回 None,避免了出现 KeyError。

students = {
    1: {'name' : 'liming', 'age': '16'},
    2: {'name' : 'wangqiang', 'age': '15'}
}
print(students[1].get('ID'))
print(students[1].get('name'))
# 输出:
None
liming

修改嵌套字典

students = {
    1: {'name' : 'liming', 'age': '16'},
    2: {'name' : 'wangqiang', 'age': '15'}
}
# 修改学生信息
students[2]['name'] = 'zhaolei'
students[2]['age'] = '17'
# 增加学生信息
students[3] = {'name': 'zhouming', 'age': '16'}
# 删除学生信息
# 如果需要保留删除的数据,使用 pop(),否则使用 del
x = students.pop(1)
del students[3]['age']
print(students)
# 输出:
{2: {'name': 'zhaolei', 'age': '17'}, 3: {'name': 'zhouming'}}

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值