【发布时间】:2020-04-02 19:29:50
【问题描述】:
想象以下数组:
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
list3 = [9, 10, 11, 12]
list4 = [13, 14, 15, 16]
我想组合数组,使其看起来像:
[[1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16]]
有没有一种快速的方法可以将任意数量的数组和数组中的任意数量的元素转换为数组格式的数组?此外,假设 list1、2、3 和 4 没有以任何方式连接,所以我不能像这样循环:
for list in lists:
> finalArray.append(list[n])
我觉得这是一些矩阵操作,但我没有经常使用矩阵。有人可以指出我的方向吗?
【问题讨论】:
-
这些是
list对象,而不是数组对象。无论如何,为什么会出现“未知数量的变量”?你是如何进入这个职位的。您应该能够从源代码中准确分辨出变量的数量。 -
我的意思是说大量的变量。我相信我可以通过使用 len(array) 来获得长度。
-
这些“未知数量的变量”从何而来?你创造了它们吗?在这种情况下,您应该首先创建一个列表列表。这种闻起来像 XY 问题——当问题真的出在其他地方时,你要求解决你认为是问题的事情。您能否更具体地了解这些变量的来源以及您在做什么?
-
然后手动
my_list = [list1, list2, ...]。 -
@LouisYe 啊,我明白了。好的,但是,您仍然需要将这些列表放在一个列表或某个序列/可迭代的开头。然后你可以做
final = [list(t) for t in zip(*list_of_lists)]。您正在寻找的矩阵术语是transpose。更简洁地说,也许是list(map(list, zip(*list_of_lists)))
标签: python list matrix transpose