我如何在python中使用2D列表迭代数据列表?



我想创建一个变量,它包含一个2行3列的2D(嵌套)列表,其中包含如下值:

3    14   67 
13   24   19

我现在的代码是这样的,但是结果并没有给我我想要的结果:

for row in range(2):
new_list = []
for col in range(3):
new_list.append(a_list)
print(new_list)

你可以使用我的代码:

a_list = [3, 14, 67, 13, 24, 19] 
new_list = []
new_list += [a_list[0:3]]
new_list += [a_list[3:6]]

你的问题是双重的,你需要实例化正确数量的列表来保存你的元素;并且您还需要按顺序从a_list中提取元素。

您需要将a_list的元素累加到"rows"你需要分别将这些行累加到你的外列表中,这样你就能得到这样的结构:

[[3, 14, 67], [13, 24, 19]]

首先,在循环外初始化一个outer_list。然后在外循环的每次迭代中,初始化一个空的row列表。在内循环中将a_list中的项追加到row。然后将row添加到内循环末尾的外列表中:

a_list = [3, 14, 67, 13, 24, 19]
num_rows = 2
num_cols = 3
# Make sure that num_rows * num_cols is equal to the length of the original list!
outer_list = []
for i in range(num_rows):
row = []
for j in range(num_cols):
# row.append() <- grab the appropriate element from a_list
outer_list.append(row)

我把困难的部分留给了你,那就是弄清楚如何使用ij获得一个索引,可以按顺序访问a_list中的每个元素。

一种更简单的方法是将a_list转换为迭代器,并在其上重复调用next(),这就不需要任何棘手的索引。但是,在继续之前,您应该尝试弄清楚如何索引到a_list,以便您可以很好地理解如何使用列表。

最新更新