假设我的数据结构如下:
[[ tuple11,
tuple12,
... ],
[ tuple21,
tuple22,
... ],
...]
也就是说,外部列表可以有任意数量的元素,并且每个元素(列表)可以包含任意数量的元素(元组)。如何将其转换为:
[[ tuple11,
tuple21,
... ],
[ tuple12,
tuple22,
... ],
... ]
对于外部列表中的两个元素,我有以下解决方案,但我不知道如何推广:
map(lambda x, y: [x, y], *the_list)
新增:
更详细地说,上面的每个元组实际上是两个np.array
的元组
如果我从以下数据结构开始:
[[(array([111, 111]), array([121, 121])),
(array([112, 112]), array([122, 122])),
(array([131, 131]), array([141, 141])),
(array([132, 132]), array([142, 142]))],
[(array([211, 211]), array([221, 221])),
(array([212, 212]), array([222, 222])),
(array([231, 231]), array([241, 241])),
(array([232, 232]), array([242, 242]))]]
我需要把它变成:
[[(array([111, 111]), array([121, 121])),
(array([211, 211]), array([221, 221]))],
[(array([112, 112]), array([122, 122])),
(array([212, 212]), array([222, 222]))],
[(array([131, 131]), array([141, 141])),
(array([231, 231]), array([241, 241]))],
[(array([132, 132]), array([142, 142])),
(array([232, 232]), array([242, 242]))]]
请注意,对于任何正N,数组并不总是1✕2而是1✕N。每个元组中总是有两个数组,但每个内部列表中有任意数量的元组,外部列表中有任意数量的这些内部列表。你知道吗
我非常习惯于处理NumPy数组,但是我对本地列表、元组等方面的经验很少
我似乎找到了解决办法。我不认为它优雅,但至少它似乎工作。让我们调用元组列表的原始列表
main_list
和元组列表的转换列表new_list
:您需要列,因此可以使用
zip
函数:但是,由于它以元组格式返回列(如果您只需要list),因此可以使用
map
将它们转换为list:演示:
以你为例:
相关问题 更多 >
编程相关推荐