Я ищу обобщенный подход, который решает следующую проблему: при произвольном количестве одномерных или многомерных списков (NumPy массивов и т.п.) возвращаются их попарные комбинации.
Следующая попытка приведите пример для трех одномерных списков a
, b
и c
, которые приводят к d
:
a = np.linspace(0, 1, 1).astype(int)
b = np.linspace(1, 2, 2).astype(int)
c = np.linspace(2, 4, 3).astype(int)
e = np.array([
(a_, b_, c_)
for a_ in a
for b_ in b
for c_ in c
])
При выполнении переменные устанавливаются следующим образом:
# a
[0]
# b
[1 2]
# c
[2 3 4]
# d
[[0 1 2]
[0 1 3]
[0 1 4]
[0 2 2]
[0 2 3]
[0 2 4]]
Что было бы хорошим способом для обобщенного подхода? В идеале я ищу функцию, которая принимает итерацию, элементы которой определяют одномерные или многомерные списки, например:
def pairwise_combinations(iterable):
# Insert magic here