在本教程中,我们将编写一个程序,将相同索引的元素,不同列表组合到一个列表中。这里有一个约束。所有列表的长度必须相同。让我们看一个例子来更清楚地理解它。
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
输出结果
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
我们可以用不同的方式解决它。让我们看看如何用普通循环解决。
用列表初始化列表。
初始化一个空列表。
将变量索引初始化为0。
遍历子列表的长度时间
将** lists [current_index] [index] **附加到** result [index]
将空列表附加到上一个列表
重复列出长度时间。
打印结果。
# initializing the list lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # empty list result = [] # variable to 0 index = 0 # iterating over the sub_list length (3) times for i in range(len(lists[0])): # appending an empty sub_list result.append([]) # iterating lists length (3) times for j in range(len(lists)): # adding the element to the result result[index].append(lists[j][index]) # moving to the next index index += 1 # printing the result print(result)
输出结果
如果运行上面的代码,则将得到以下结果。
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
我们可以使用zip函数轻松解决它。该拉链功能让你在一个元组中的所有索引元素作为我们想要的。让我们看一下代码。
# initializing the list lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # using the zip and printing it print(list(zip(*lists)))
输出结果
如果运行上面的代码,则将得到以下结果。
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
我们可以通过遍历列表将元组转换为列表。可以用不同的方法完成。将使用另一个称为map的函数将所有元组转换为列表。这是一行代码。
# initializing the list lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # using the zip and printing it print(list(map(list, zip(*lists))))
输出结果
如果运行上面的代码,则将得到以下结果。
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
我们使用map遍历列表并将每个元组转换为列表。您可以对循环执行相同的操作。尝试一下。
如果您对本教程有任何疑问,请在评论部分中提及。