一、Python List 多维数组介绍
Python中,List是变长的、可以存储任意数据类型的数组。而多维数组是指在List中,每个元素又是一个List,即嵌套的List。Python支持二维数组,甚至可以使用List实现任意维度的多维数组。
在Python中,我们可以使用如下方法定义一个二维数组:
# 定义一个二维数组
two_dimensional_list = [[1,2,3], [4,5,6], [7,8,9]]
上面的代码定义了一个3行3列的二维数组,可以使用两个索引值来访问其中的元素:
# 访问二维数组中的元素
print(two_dimensional_list[0][0]) # 输出1
print(two_dimensional_list[1][2]) # 输出6
print(two_dimensional_list[2][1]) # 输出8
二、Python List 多维数组的遍历
Python中,我们可以使用for循环来遍历多维数组中的所有元素,下面是一个例子:
# 遍历二维数组
for row in two_dimensional_list:
for col in row:
print(col, end=' ')
print()
上面的代码会逐行输出二维数组中的所有元素:
1 2 3 4 5 6 7 8 9
如果我们想要遍历多维数组中的所有元素的坐标,可以使用enumerate函数:
# 遍历二维数组,输出索引值和元素
for i, row in enumerate(two_dimensional_list):
for j, col in enumerate(row):
print('(', i, ',', j, ')', '=', col)
三、Python List 多维数组的切片
切片是指按照一定规律取出某个序列中的一部分元素。在Python中,我们可以使用切片来访问多维数组中的某一部分内容。比如我们可以使用如下代码来获取二维数组的第一行和第二行第一列的元素:
# 获取多维数组中的片段
print(two_dimensional_list[0:2][0])
上面的代码会输出[1,2,3],这是错误的结果,因为在Python中,切片是按照从前往后的顺序来取的。正确的方式是先取出第一行和第二行,然后再从中取出第一列,如下:
# 获取多维数组中的片段
print([row[0] for row in two_dimensional_list[0:2]])
上面的代码会输出[1, 4],也就是第一行和第二行第一列的元素。
四、Python List 多维数组的操作
Python List支持丰富的操作,比如增加、删除、修改等操作。我们可以通过如下代码来对多维数组进行增删改查操作:
# 定义一个二维数组
two_dimensional_list = [[1,2,3], [4,5,6], [7,8,9]]
# 获取二维数组中的元素
print(two_dimensional_list[0][0]) # 输出1
# 修改二维数组中的元素
two_dimensional_list[0][0] = 10
print(two_dimensional_list[0][0]) # 输出10
# 删除二维数组中的行
del two_dimensional_list[0]
print(two_dimensional_list)
# 在二维数组中插入行
two_dimensional_list.insert(0, [10, 11, 12])
print(two_dimensional_list)
# 在二维数组中添加元素
two_dimensional_list[0].append(13)
print(two_dimensional_list)
上面的代码会分别输出10、[[4,5,6], [7,8,9]]、[[10,11,12], [4,5,6], [7,8,9]]和[[10,11,12,13], [4,5,6], [7,8,9]]。
五、Python List 多维数组的高级操作
Python List还支持一些更加高级的操作,比如排序、过滤、映射等操作。下面是一些例子:
1、按照元素的某个属性排序:
# 定义一个二维数组
person_list = [['name1', 20], ['name2', 22], ['name3', 18]]
# 按照年龄进行排序
person_list.sort(key=lambda x: x[1])
print(person_list)
上面的代码会按照年龄从小到大的顺序对数组进行排序。
2、对某些元素进行过滤:
# 定义一个二维数组
two_dimensional_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 过滤出所有大于5的元素
filtered_list = [col for row in two_dimensional_list for col in row if col > 5]
print(filtered_list)
上面的代码会过滤出所有大于5的元素,输出[6,7,8,9]。
3、对某些元素进行映射:
# 定义一个二维数组
two_dimensional_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 将所有元素都加1
mapped_list = [[col+1 for col in row] for row in two_dimensional_list]
print(mapped_list)
上面的代码会对二维数组中的每个元素都加1,输出[[2,3,4], [5,6,7], [8,9,10]]。
六、总结
在Python中,我们可以使用List来实现多维数组。Python List支持丰富的操作,比如遍历、切片、增删改查等操作。在进行多维数组操作时,需要注意切片和遍历的顺序问题。此外,Python List还支持一些高级操作,比如排序、过滤和映射等操作,可以大大提高我们处理多维数组时的效率。