多组中相同索引处的Python组元素

在本教程中,我们将编写一个程序,将相同索引的元素,不同列表组合到一个列表中。这里有一个约束。所有列表的长度必须相同。让我们看一个例子来更清楚地理解它。

输入值

[[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遍历列表并将每个元组转换为列表。您可以对循环执行相同的操作。尝试一下。

    结论

    如果您对本教程有任何疑问,请在评论部分中提及。