Python字典嵌套详解:列表、列表值与字典值的实战应用

月亮慢半拍
月亮慢半拍
发布时间:2026-10-14 | 4人浏览过
原创

本文深入解析Python中的字典嵌套技术,涵盖三种核心场景:在列表中存储多个字典、在字典中存储列表作为值,以及在字典中嵌套其他字典。通过外星人数据、煎饼果子配料及用户信息管理的具体代码示例,展示如何处理复杂数据结构,帮助开发者掌握高效的数据组织与遍历方法。

Python字典嵌套概述

为什么需要嵌套?

在实际开发中,经常需要将一系列字典存储在列表中,或者将列表作为值存储在字典里,这种结构被称为嵌套。我们可以灵活地在列表中嵌套字典、在字典中嵌套列表,甚至实现字典嵌套字典的复杂层级结构。

在列表中存储字典

字典列表

假设有一个名为 alien_0 的字典,它包含了一个外星人的基本信息,但如果需要存储第二个外星人的信息,单个字典显然无法胜任。

虽然我们可以创建三个独立的字典来分别存储,但如果面临成百上千个外星人的数据需求,逐一创建显然效率低下。是否存在更简洁的处理方式?


alien_0 = {'color':'blue','points':'5'}
alien_1 = {'color':'blue','points':'5'}
alien_2 = {'color':'blue','points':'5'}

aliens = []
for number in range(5):
 new_alient = {'color':'blue','points':'5','speed':'slow'}
 aliens.append(new_alient)
for i in aliens:
 print(i)
print(str(len(aliens)))

输出

{'color': 'blue', 'points': '5', 'speed': 'slow'} {'color': 'blue', 'points': '5', 'speed': 'slow'} {'color': 'blue', 'points': '5', 'speed': 'slow'} {'color': 'blue', 'points': '5', 'speed': 'slow'} {'color': 'blue', 'points': '5', 'speed': 'slow'} 5

上述输出显示这些外星人具有完全相同的特征。在Python看来,每个字典都是独立的对象,但这种静态数据往往不符合实际业务逻辑的需求。

例如,我们需要将前三个外星人的属性修改为:颜色变为黄色,速度设为中等(对应键值 speen),得分调整为10分。


aliens = []
for number in range(5):
 new_alient = {'color':'blue','points':'5','speed':'slow'}
 aliens.append(new_alient)
for alien in aliens[:3]:
 if alien['color'] == 'blue':
  alien['color'] = 'yellow'
  alien['speen'] = 'medium'
  alien['points'] = 10
for alien in aliens:
 print(alien)

输出

{'color': 'yellow', 'points': 10, 'speed': 'slow', 'speen': 'medium'} {'color': 'yellow', 'points': 10, 'speed': 'slow', 'speen': 'medium'} {'color': 'yellow', 'points': 10, 'speed': 'slow', 'speen': 'medium'} {'color': 'blue', 'points': '5', 'speed': 'slow'} {'color': 'blue', 'points': '5', 'speed': 'slow'}

此外,还可以结合 if-elif-else 语句,根据具体条件更细致地描述每个外星人的属性变化。

在字典中存储列表

在字典中存储列表

以制作煎饼果子为例,如果使用列表,只能描述可添加的配料;而使用字典,不仅能存储配料列表,还能同时记录煎饼果子的产地等额外信息。


jbgz = {'origin':'天津','toppings':['鸡蛋','香肠']}
print('煎饼果子产地是:' + jbgz['origin'] + '。你可以选择添加:')
for topping in jbgz['toppings']:
 print(topping)

输出

煎饼果子产地是:天津。你可以选择添加: 鸡蛋 香肠

再比如,调查程序员们偏好的编程语言,可以将多个人的喜好存储在一个字典中。


languages = {
 'jens':['python','java'],
 'sarah':['c','ruby'],
 'hack':['go']
}
for name,language in languages.items():
 print(name.title() + "'s favorite languages are:")
 for i in language:
  print('\t' + i.title())

输出

Jens's favorite languages are: Python Java Sarah's favorite languages are: C Ruby Hack's favorite languages are: Go

在字典中存储字典

在字典中存储字典

例如,网站数据库需要存储每个用户的姓、名和住址,并通过字典嵌套结构来高效访问这些信息。


users = {
 '岳云鹏':{
  '姓':'岳',
  '名':'龙刚',
  '住址':'北京'
 },
 '孟鹤堂':{
  '姓':'孟',
  '名':'祥辉',
  '住址':'北京'
 }
}
for username,user_info in users.items():
 print('\n艺名:'+ username)
 full_name = user_info['姓'] + '' + user_info['名']
 location = user_info['住址']
 print('\t姓名:' + full_name)
 print('\t住址:' + location)

输出

艺名:岳云鹏 姓名:岳龙刚 住址:北京

艺名:孟鹤堂 姓名:孟祥辉 住址:北京

以上就是Python字典嵌套的详细内容,更多关于Python字典嵌套的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表