我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。
之前的文章我们通过举例学习了python 中列表的相关操作,但是操作的列表都是普通列表,也可以说是一维的。今天详细讲述二维列表相关的操作,也是经常使用到的。
1、二维列表简介
在python中列表中的元素也可以是列表,因此也支持二维列表。
二维列表类似学生们军训排队的队列:
|----|----|----|----|----|
| 00 | 01 | 02 | 03 | 04 |
| 10 | 11 | 12 | 13 | 14 |
| 20 | 21 | 22 | 23 | 24 |
| 30 | 31 | 32 | 33 | 34 |
如上面的列表4行5列,
可以写成列表[[00,01,02,03,04],[10,11,12,13,14],[20,21,22,23,24],[30,31,32,33,34]]
从外部来看,外面第一层列表中的元素个数就是行数,里面嵌套的一层列表的个数为列数。
类似其他语言二维数组,如arr[4,5] 代表行数为4,列数为5
2、直接定义二维列表
创建二维列表的第一种方式,直接定义二维列表。参考如下:
创建二维列表时,使用的语法:
Listname =[
[元素11,元素12,元素13,...,元素1n],
[元素21,元素22,元素23,...,元素2n],
....
[元素n1,元素n2,元素n3,...,元素nn]
]
参数说明:
Listname:表示生成的列表名称
[元素11,元素12,元素13,...,元素1n]:表示二维列表的第一行的元素
[元素21,元素22,元素23,...,元素2n]:表示二维列表的第二行的元素
......
[元素n1,元素n2,元素n3,...,元素nn]:表示二维列表的第n行的元素
例如我们来定义员工的信息如:staff_info = [ ['ID001','张三','男',25,'A'],
['ID002','李四','男',35,'B'],
['ID003','王五','女',45,'C'],
['ID004','刘柳','女',55,'C']
]
print(staff_info)
执行输出结果如下:
3、使用嵌套的for循环生成二维列表
举个小栗子:
#使用for循环创建二维列表
lists_num =[]
for i in range(4): #对应二维列表的行数
lists_num.append([]) #在空列表中添加一个空列表
for j in range(5):
lists_num[i].append(j) #在内层的列表中添加元素,j分别取range(5)的数字
print(lists_num)
4、使用列表推导式创建二维列表
列表推导式创建二维列表的方法:
Listname = [[j for j in range(4)] for i in range(3)] 创建列为4列,行为3行的二维列表
#使用列表推导式创建二维列表
list_get = [[j for j in range(4)] for i in range(3)] #3行4列的列表
print(list_get)
若是要访问其中的元素:arr[下标1][下标2]
下标1指的是行
下标2指的是列
举个小栗子:使用二维列表输出一首诗
#应用二维列表的方法来输出这首诗,思路先将字符串放到列表中
str1 = '白日依山尽'
str2 = '黄河入海流'
str3 = '欲穷千里目'
str4 = '更上一层楼'
poem_list = [list(str1),list(str2),list(str3),list(str4)]
print(" "+"登鹳雀楼") #展示诗题
for i in range(4): #列表为4行
for j in range(5): #每行5个字,为5列
print(poem_list[i][j]) #打印出文字
这样我们执行的结果如下:每个字展示为一行了,因为print默认是换行的。
这里我们是每隔5个元素换一次行,就需要做一个判断。
修改如下,下面黄色部分的判断:
#应用二维列表的方法来输出这首诗,思路先将字符串放到列表中
str1 = '白日依山尽'
str2 = '黄河入海流'
str3 = '欲穷千里目'
str4 = '更上一层楼'
poem_list = [list(str1),list(str2),list(str3),list(str4)]
print(" "+"登鹳雀楼") #展示诗题
for i in range(4): #列表为4行
for j in range(5): #每行5个字,为5列
if j==4:
print(poem_list[i][j]) #打印出文字,并且换行
else:
print(poem_list[i][j],end='') #不是第5列的文字不换行,结尾为空
输出结果:
今天先写到这里了,每天进步一点点。今天你加油了吗!