Каждый вложенный массив сканируется в том порядке, в котором они появляются в основном массиве. Сканируемый элемент объединяется с последним элементом каждого массива перед текущим и первым элементом каждого массива после текущего.
Пример:
Код: Выделить всё
all_arrays = [[1.1, 1.05], [2.1, 2.05, 2], [3.1, 3.05]]
Код: Выделить всё
[
[1.1, 2.1, 3.1],
[1.05, 2.1, 3.1],
[1.05, 2.05, 3.1],
[1.05, 2, 3.1],
[1.05, 2, 3.05]
]
Код: Выделить всё
combinations = []
for ii in range(len(all_arrays)):
while len(all_arrays[ii]) > 1:
combinations.append(next(zip(*all_arrays)))
all_arrays[ii] = all_arrays[ii][1:]
combinations.append(next(zip(*all_arrays)))
- Есть ли у такой комбинации имя? Я спрашиваю не только о моих личных знаниях, но и потому, что, если у него есть имя, вероятно, уже существует какой-то алгоритм, который реализовал его быстрее, чем я.
- Даже если у него нет имени, видите ли вы лучший способ его реализации (возможно, даже с использованием другого типа данных)?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ombination