Подтвердить что ты не робот

Итерации по всем комбинациям значений в нескольких списках в python

Учитывая множественный список возможной переменной длины, я хочу перебрать все комбинации значений, по одному элементу из каждого списка. Например:

first = [1, 5, 8]
second = [0.5, 4]

Затем я хочу, чтобы результат был:

combined = [(1, 0.5), (1, 4), (5, 0.5), (5, 4), (8, 0.5), (8, 4)]

Я хочу перебрать объединенный список. Как это сделать?

4b9b3361

Ответ 1

itertools.product должен сделать трюк.

>>> list(itertools.product([1, 5, 8], [0.5, 4]))
[(1, 0.5), (1, 4), (5, 0.5), (5, 4), (8, 0.5), (8, 4)]

Обратите внимание, что itertools.product возвращает итератор, поэтому вам не нужно преобразовывать его в список, если вы только собираетесь его перебирать один раз.

например.

for x in itertools.product([1, 5, 8], [0.5, 4]):
    # do stuff