在
Python
中,由于列表元素还可以是列表,所以它也支持二维列表的概念。那么什么是二维列表?前文提到酒店有很多房间,这些房间都可以构成一个列表,如果这个酒店有
500
个房间,那么拿到
499
号房钥匙的旅客可能就不高兴了,从
1
号房走到
499
号房要花好长时间,因此酒店设置了很多楼层,每一个楼层都会有很多房间,形成一个立体的结构,把大量的房间均摊到每个楼层,这种结构就是二维列表结构。使用二维列表结构表示酒店每个楼层的房间号的效果如下图所示。
二维列表中的信息以行和列的形式表示,第一个下标代表元素所在的行,第二个下标代表元素所在的列。在Python中,创建二维列表有以下三种常用的方法。
直接定义二维列表
listname = [
[元素11, 元素12, 元素13, …, 元素1n],
[元素21, 元素22, 元素23, …, 元素2n],
…,
[元素n1, 元素n2, 元素n3, …, 元素nn]
]
使用嵌套的for循环创建
创建二维列表,可以使用嵌套的for
循环实现。
使用列表推导式创建
使用列表推导式也可以创建二维列表,因为这种方法比较简洁,所以建议使用这种方法创建二维列表。
例如,使用列表推导式创建一个包含4
行5
列的二维列表可以使用下面的代码:
arr = [[j for j in range(5)] for i in range(4)]
访问二维列表中的元素
listname[下标1][下标2]
参数说明:
listname
:列表名称。- 下标
1
:表示列表中第几行,下标值从0
开始,即第一行的下标为0
。 - 下标
2
:表示列表中第几列,下标值从0
开始,即第一列的下标为0
。
案例一
使用二维列表输出不同版式的古诗。
结果如下:
案例二
一个学校,有3
个办公室,现在有8
位老师等待工位的分配,请编写程序,完成随机的分配。
练习
10
个同学,随机分配到5
个软件班,请编程实现。