Python字典嵌套使用详解:列表、字典与列表的混合存储

叶初
叶初
发布时间:2026-10-13| 5人浏览过
原创

本文详细解析Python中字典的三种嵌套用法:在列表中存储字典、在字典中存储列表以及在字典中嵌套字典。通过学生信息和店铺配料的实际案例,展示如何利用嵌套结构处理复杂数据,并指出代码实现中的注意事项,帮助读者掌握Python复杂数据结构的构建与遍历技巧。

当需要存储大量类型相同但具体数据不同的对象时,往往需要使用嵌套结构。下面通过一个具体示例来演示嵌套的基本用法。

1、在列表中存储字典

student_1={'nationality':'China','colour':'yellow','age':'15'}
student_2={'nationality':'America','colour':'white','age':'18'}
student_3={'nationality':'Africa','colour':'dark','age':'17'}
grade = [student_1,student_2,student_3]
for student in grade:
  print(student)

运行结果如下:

{‘nationality’: ‘China’, ‘age’: ‘15’, ‘colour’: ‘yellow’} {‘nationality’: ‘America’, ‘age’: ‘18’, ‘colour’: ‘white’} {‘nationality’: ‘Africa’, ‘age’: ‘17’, ‘colour’: ‘dark’}

需要注意的是,上述示例将字典作为列表的元素进行了嵌套,并通过列表进行了遍历。接下来假设一个班级里有30名同龄的中国学生,利用嵌套结构来生成这些数据。

#定义一个存储中国学生的列表,假设年龄都一样
chinese=[]
#创建30个中国学生
for student in range(0,30):
  student_1={'nationality':'China','colour':'yellow','age':'15'}
  chinese.append(student_1)
#显示一共创建了多少个学生
print('一共创建了:'+str(len(chinese))+'个学生')
#显示前5个中国学生
for stu in chinese[:5]:
  print(stu)

运行结果如下:

{‘colour’: ‘yellow’, ‘age’: ‘15’, ‘nationality’: ‘China’} {‘colour’: ‘yellow’, ‘age’: ‘15’, ‘nationality’: ‘China’} {‘colour’: ‘yellow’, ‘age’: ‘15’, ‘nationality’: ‘China’} {‘colour’: ‘yellow’, ‘age’: ‘15’, ‘nationality’: ‘China’} {‘colour’: ‘yellow’, ‘age’: ‘15’, ‘nationality’: ‘China’}

然而,如果所有学生的年龄都完全相同,这样的数据显得不够自然。

#定义一个存储中国学生的列表,假设年龄都一样
chinese=[]
#创建30个中国学生
for student in range(0,30):
  student_1={'nationality':'China','colour':'yellow','age':'15'}
  chinese.append(student_1)
#显示一共创建了多少个学生
print('一共创建了:'+str(len(chinese))+'个学生')
for student_c in chinese[0:2]:
  if student_c['nationality']=='China':
    student_c['nationality']='America'
    student_c['colour']='white'
    student_c['age']=14
#显示前5个中国学生
for stu in chinese[:5]:
  print(stu)

运行结果如下:

一共创建了:30个学生 {‘colour’: ‘white’, ‘nationality’: ‘America’, ‘age’: 14} {‘colour’: ‘white’, ‘nationality’: ‘America’, ‘age’: 14} {‘colour’: ‘yellow’, ‘nationality’: ‘China’, ‘age’: ‘15’} {‘colour’: ‘yellow’, ‘nationality’: ‘China’, ‘age’: ‘15’} {‘colour’: ‘yellow’, ‘nationality’: ‘China’, ‘age’: ‘15’}

备注:学习到这里,如果发现列表和字典的基础知识掌握得不够扎实,建议回顾相关章节。

2、在字典中存储列表

假设有一家小店,售卖两种粥,且每种粥的配料各不相同。我们可以利用一个字典来记录这两种粥及其对应的配料列表。

#为了简化就不把配料全写出来了
gruel={
  '八宝粥':['大米','桂圆','红枣','芡实','莲子','薏仁','黑豆','核桃仁'],
  '瘦肉粥':['大米','瘦肉']
  }
for key,value in gruel.items():
  print('\n'+key,end=':')
  for batching in value:
    print(batching, end=' ')

运行结果如下:

八宝粥:大米 桂圆 红枣 芡实 莲子 薏仁 黑豆 核桃仁 瘦肉粥:大米 瘦肉

注意: 为了实现print()函数输出时不换行,这里使用了end参数。 配料作为列表存储在了字典的值中。

3、在字典中嵌套字典

以班里两名同学的信息为例进行说明。

grade={
  '赵丽颖':{
    '国籍':'中国',
    '民族':'汉',
    '出生日期':'1987年10月16日',
    '身高':'165cm',    
    },
  '杨幂':{
    '国籍':'中国',
    '民族':'汉',
    '出生日期':'1986年9月12日',
    '身高':'166.5cm', 
    }
  }
for name,info in grade.items():
  print(name)
  for key,value in info.items():
    print(key+':'+value)

运行结果如下:

杨幂 国籍:中国 民族:汉 出生日期:1986年9月12日 身高:166.5cm 赵丽颖 国籍:中国 民族:汉 出生日期:1987年10月16日 身高:165cm

本节主要学习了字典的嵌套功能,重点掌握了在列表中嵌套字典、在字典中嵌套列表以及字典中嵌套字典这三种实现复杂数据运用的方式。

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对本站的支持。如果你想了解更多相关内容请查看下面相关链接

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。