首页 > 解决方案 > 如何垂直打印水平列表?更多信息在下面

问题描述

所以,在过去的几个月里,我在 Udacity.com 上做这门课程,名为 CS101。完成 53% 后,我收到了一个问题,要求我编写一个算法来解决一个非常简单的数独难题。因此,就我的专业知识和我设计算法的方式而言,我想制作一个垂直打印的列表。

例如:

[[4,7,3],[1,8,2],[3,9,3]]

我希望上面的列表打印为

[[4,1,3],[7,8,9],[3,2,3]]

标签: pythonpython-3.xlist

解决方案


您可以使用zipwhich 将每个给定列表的所有第 i 个元素聚合在一起:

values = [[4,7,3],[1,8,2],[3,9,3]]
values = list(zip(*values))
print(values) # [(4, 1, 3), (7, 8, 9), (3, 2, 3)]

使用循环:

result = [[] for _ in range(len(values[0]))]
for value in values:
    for jdx, val in enumerate(value):
        result[jdx].append(val)
print(result)

推荐阅读