我想创建一个变量,它包含一个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)
我把困难的部分留给了你,那就是弄清楚如何使用i
和j
获得一个索引,可以按顺序访问a_list
中的每个元素。
一种更简单的方法是将a_list
转换为迭代器,并在其上重复调用next()
,这就不需要任何棘手的索引。但是,在继续之前,您应该尝试弄清楚如何索引到a_list
,以便您可以很好地理解如何使用列表。