Python嵌套列表

Python中的列表是一种非常常用的数据结构,它允许存储多个元素,并且可以根据需要进行修改。在Python中,还可以在列表中嵌套其他列表,这就是嵌套列表(nested list)。
嵌套列表的形式如下所示:
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
在嵌套列表中,每个内部的列表被当作一个元素。也就是说,上述嵌套列表中包含了3个内部列表,每个内部列表都包含3个元素。
创建嵌套列表
我们可以使用以下两种方式来创建嵌套列表:
- 直接在列表中使用方括号括起来的其他列表。
- 使用循环来创建一个空的列表,然后在列表中添加其他列表。
下面是两种方式的示例代码和运行结果:
# 直接创建嵌套列表
nested_list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(nested_list1)
# 输出:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 使用循环创建嵌套列表
nested_list2 = []
for i in range(3):
inner_list = []
for j in range(3):
inner_list.append(i * 3 + j + 1)
nested_list2.append(inner_list)
print(nested_list2)
# 输出:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
以上代码中,分别使用直接创建和循环创建两种方式来创建了相同的嵌套列表。可以看到,两种方式得到了相同的结果。
访问嵌套列表中的元素
访问嵌套列表中的元素,可以使用索引和切片的方式。假设我们有以下的嵌套列表:
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
我们可以使用索引和切片的方式来访问其中的元素。示例代码如下:
# 访问嵌套列表中的单个元素
element = nested_list[1][2]
print(element)
# 输出:6
# 访问嵌套列表中的子列表
sub_list = nested_list[0]
print(sub_list)
# 输出:[1, 2, 3]
# 访问嵌套列表中的部分元素
slice_list = nested_list[1][0:2]
print(slice_list)
# 输出:[4, 5]
在以上示例代码中,我们先使用索引的方式访问到了嵌套列表中的元素6,然后又使用索引的方式访问到了嵌套列表中的子列表[1, 2, 3],最后使用切片的方式访问到了嵌套列表中的部分元素[4, 5]。
更新嵌套列表中的元素
更新嵌套列表中的元素,也是通过索引和切片的方式来实现。我们可以直接使用赋值的方式来更新嵌套列表中的元素。示例代码如下:
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 更新嵌套列表中的单个元素
nested_list[1][2] = 10
print(nested_list)
# 输出:[[1, 2, 3], [4, 5, 10], [7, 8, 9]]
# 更新嵌套列表中的子列表
nested_list[0] = [11, 12, 13]
print(nested_list)
# 输出:[[11, 12, 13], [4, 5, 10], [7, 8, 9]]
# 更新嵌套列表中的部分元素
nested_list[2][0:2] = [14, 15]
print(nested_list)
# 输出:[[11, 12, 13], [4, 5, 10], [14, 15, 9]]
在以上示例代码中,我们先通过索引的方式将嵌套列表中的元素6更新为了10,然后又使用索引的方式将嵌套列表中的子列表[1, 2, 3]更新为了[11, 12, 13],最后使用切片的方式将嵌套列表中的部分元素[7, 8]更新为了[14, 15]。可以看到,通过赋值的方式成功更新了嵌套列表中的元素。
遍历嵌套列表
遍历嵌套列表时,可以使用嵌套的循环来逐个访问内部的元素。示例代码如下:
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 遍历嵌套列表
for inner_list in nested_list:
for element in inner_list:
print(element)
以上示例代码中,我们使用了两层循环来遍历嵌套列表。第一层用于遍历外部的列表,第二层用于遍历内部的列表元素。在每次循环中,我们使用print()函数打印出了每个元素。
列表推导式
列表推导式是一种简洁的方式来创建和操作列表,也可以用于创建嵌套列表。下面是一个使用列表推导式创建嵌套列表的示例代码:
nested_list = [[i * 3 + j + 1 for j in range(3)] for i in range(3)]
print(nested_list)
# 输出:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
在以上示例代码中,我们使用了嵌套的for循环来生成嵌套列表。通过列表推导式,我们可以用一行代码实现了与之前示例代码相同的功能。
总结
本文详细介绍了Python中的嵌套列表。我们学习了如何创建、访问、更新和遍历嵌套列表。同时,我们还了解了如何使用列表推导式来创建嵌套列表。嵌套列表在实际的编程中非常常用,可以灵活地存储和操作多个元素。
极客教程