Python程序设计——多维列表

一、引言

关键点:一张表或矩阵中的数据可以存储在一个二维列表中。

        二维列表是将其他列表作为它的元素的列表。前一章介绍了如何使用一个列表来存储线性的元素集合。可以使用列表来存储二维数据,例如: 一个矩阵或者一张表等。例如,下表所示的提供了不同城市之间距离的表可以使用一个命名为distances的列表来存储。

二、处理二维列表

关键点:二维列表中的值可以通过行下标和列下标来访问。

        可以将二维列表理解为一个由行组成的列表。而每一行又是一个由值组成的列表。二维列表的每一行可以使用下标访问,为方便称为行下标。每一行中的值可以通过另一个下标访        问,称为列下标。一个命名为matrix的二维列表如图11-1 所示。

矩阵中的每个值都可以用matrix[i][j]来访问,这里的i和j分别是行下标和列下标。

2.1、使用输入值初始化列表

下面的循环使用用户输人值来初始化矩阵。

2.2、使用随机数初始化列表

下面的循环初始化一个存储0到99之间随机数的列表。

2.3、打印列表

为了打印一个二维列表,必须通过使用下面的循环来打印列表中的每一个元素。

2.4、对所有元素求和

        使用一个名为total的变量来存储元素的总和。初始状态下,total 值为0。利用如下循环对列表中的每一个元素相加,值赋给total。

 2.5、按列求和

        对于每一列,使用名为total的变量来存储每一列的总和。使用如下循环将每一列中元素相加,和赋值给total。

 2.6、找出和最大的行

        为了找出和最大的行,可以使用变量maxRow和indexOfMaxRow来跟踪最大的和及对应的行下标。对每一行,计算它的和,如果新的和要大些时,更新maxRow和indexOfMaxRow。

 2.7、随意打乱

        可以使用函数random.shuffle(list)打乱一维列表中的元素。如何打乱二维列表中的所有元素?为了实现这个目的,对每一个元素matrix[row ][column],随机生成下标i和j并且将matrix[row][column]和matrix[i][j]进行互换,如下所示:

 2.8、 排序

        可以应用sort方法对一个二维列表排序。它通过每一行的第一个元素进行排序。对于第一个元素相同的行,则通过它们的第二个元素进行排序。如果行中的第一个和第二个元素都相同,则利用它们的第三个元素进行排序,依此类推。例如:

三、将二维列表传递给函数

关键点:当给函数传递二维列表时,是将这个列表的引用传递给函数。

        可以像传递一维列表一样给函数传递一个二维列表。同样可以从函数中返回一个二维列表。下面代码给出了一个含有两个函数的例子。第一个函数是getMatrix(), 它返回一个二维列表,而第二个函数是accumulate(m),它返回一个矩阵所有元素的总和。

 四、多维列表

关键点:二维列表是包含了一维列表的列表,而三维列表是包含了二维列表的列表。

        一个多维列表是每个元素是其他列表的列表。具体地说,一个三维列表是由二维列表组成的列表,而一个二维列表是由一维列表组成的列表。

五、总结

  • 二维列表能用来存储二维数据,例如:一张表和一个矩阵。.
  • 二维列表也是列表。二维列表中的元素是一个列表。
  • 二维列表中的元素可以使用下面的语法来访问。
listName[rowIndex] [columnIndex]
  • 可以利用一个列表的列表来形成多维列表以存储多维数据。
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值