列表——嵌套 | 第二部分 类型与操作 —— 第 4 章: 介绍 python 对象类型 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-金年会app官方网
python核心数据类型的一个好功能是支持任意的嵌套——能以任何组合嵌套它们,且要多深有多深。比如,可以有一个包含一个字典的列表,该字典包含另一个列表,以此类推。这个功能的一个直接应用是代表矩阵,或python中的“多维数组”。
具有嵌套列表的列表将完成基本应用程序的工作(在一些界面,但不是在idle中,将在下面的行2和行3上得到“...”延续行提示符):
>>> m = [[1, 2, 3], # 一个 3 x 3 的矩阵,作为嵌套列表
[4, 5, 6], # 如果被方括号包裹,代码可以跨行
[7, 8, 9]]
>>> m
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
这里已经编码了一个包含三个其他列表的列表。效果是代表了一个3 x 3的数字矩阵。这个结构可以用许多方式访问:
>>> m[1] # 获得行2
[4, 5, 6]
>>> m[1][2] # 获得行2行中的第3项
6
这里第一个操作获取了整个第二行,然后第二个操作从该行中抓取第三项(它从左向右运行,就像早前的字符串剥离和分割一样)。将索引操作连结起来让我们越来越深入到嵌套对象结构中[13]。
[13]: 这个矩阵结构适用于小规模任务,但对更大规模的数字运算,你很可能想要使用python的一个数字插件,如开源numpy 和 scipy 系统。这些工具能比嵌套列表结构更有效地存储和处理大矩阵。numpy被宣称为相当于将python转变为一个免费的和更强大版本的 matlab 系统的等价物,并且如nasa,los alamos,jpl和许多其他组织使用这个工具来完成科学和财务任务。上网获取更多细节。