Я знаю, что это не нужно делать рекурсией. Я хочу объединить два списка, таких как x = [0, 1]
и y = ['a', 'b', 'c']
, и создать функцию, которая помещает их в список кортежей, таких как: [(0, 'a'), (0, 'b'), (0, 'c'), (1, 'a'), (1, 'b'), (1, 'c')]
.
. Я знаю только, как это сделать для первого Индекс списка х и пытается выяснить, как перейти к дальнейшим индексам. Вывод для функции ниже: [(0, 'a'), (0, 'b'), (0, 'c')]
.
def combine(x, y, idx=0):
if idx < len(y):
return [(x[idx], y[idx])] + combine(x, y[1:])
else:
return []
Я не знаю, как получить список х, чтобы перейти к другим индексам. Я думаю, что мне может потребоваться вызвать all_pairs (list1, list2, index + 1 вместо того, чтобы разрезать список. Нужно ли мне дважды вызывать саму функцию? Это может показаться элементарным, но по какой-то причине я не могу понять это.