主要内容 #
- 二维列表的定义
- 二维列表的基本操作:构建, 索引, 取行, 取列
1. 二维列表的定义 #
二维列表又称为矩阵,可以理解为列表里的每一个元素是一个一维列表。
比如,以下表格表示一个一维列表(1行6列)

以下表格表示一个二维列表(2行10列)

以下表格表示一个二维列表(5行10列)

Python中,一维列表(1行N+1列)的创建格式如下:
[元素0,元素1,元素2,…,元素N]
二维列表(M+1行N+1列)创建格式如下。注:二维列表中每个元素之间要用逗号隔开。
[
[元素00,元素01,元素02,…,元素0N],
[元素10,元素11,元素12,…,元素1N],
[元素20,元素21,元素22,…,元素2N],
┇
[元素M0,元素M1,元素M2,…,元素MN]
]
2. 二维列表的基本操作 #
构建一个二维列表
以下程序构建了一个4行4列的二维列表
list2D = [
[0,'语文','数学','英语'],
['小明',95,98,99],
['莉莉',99,95,100],
['大雄',60,10,50]
]
print(list2D)
二维列表的索引
和一维列表的索引类似,通过两个中括号和数字读取二维列表中指定的一个元素。
从左数第一个中括号里的索引表示行,第二个中括号里的索引表示列,比如:
list2D = [
[0,'语文','数学','英语'],
['小明',95,98,99],
['莉莉',99,95,100],
['大雄',60,10,50]
]
print(list2D[0][0]) # 取第0行第0列的元素
print(list2D[0][2]) # 取第0行第2列的元素
print(list2D[2][1]) # 取第2行第1列的元素
取二维列表中的行数据
只需要一个中括号和数字即可读取二维列表对应索引的行数据,比如:
list2D = [
[0,'语文','数学','英语'],
['小明',95,98,99],
['莉莉',99,95,100],
['大雄',60,10,50]
]
print(list2D[0]) # 取第0行所有元素
print(list2D[1]) # 取第1行所有元素
print(list2D[2]) # 取第2行所有元素
取二维列表中的列数据
以下程序通过for循环取出二维列表的每一行:
list2D = [
[0,'语文','数学','英语'],
['小明',95,98,99],
['莉莉',99,95,100],
['大雄',60,10,50]
]
for i in list2D:
print(i)
在取出每一行的同时,通过二次索引取出该行指定的列。比如:
list2D = [
[0,'语文','数学','英语'],
['小明',95,98,99],
['莉莉',99,95,100],
['大雄',60,10,50]
]
print('取第0列')
for i in list2D:
print(i[0])
print()
print('取第2列')
for i in list2D:
print(i[2])
将所取列的结果放入一个列表中:
比如,将第0列放入列表list0中
推导表达式:
list2D = [
[0,'语文','数学','英语'],
['小明',95,98,99],
['莉莉',99,95,100],
['大雄',60,10,50]
]
list0 = [i[0] for i in list2D]
print(list0)
传统方法:
list2D = [
[0,'语文','数学','英语'],
['小明',95,98,99],
['莉莉',99,95,100],
['大雄',60,10,50]
]
list0 = []
for i in list2D:
list0.append(i[0])
print(list0)
3. 小结 #
二维列表又称为矩阵,可以理解为列表里的每一个元素是一个一维列表
二维列表的基本操作:构建, 索引, 取行, 取列
习题 #
OJ训练题 #
1、数字走向1 – ★★
2、对角线1 – ★★
3、有趣的数字图形1 – ★★★
4、回形方阵 – ★★★
5、输出杨辉三角的前n行 – ★★★★