Я пытаюсь создать список с кортежами в качестве элементов. Каждый кортеж имеет 4 целых числа. Первые 2 целых числа являются результатом сложения 2 ranges
, а 2 других из двух разных.
Я использую этот код для создания кортежей и окончательного списка, который получен из декартового произведения. , как видно здесь: Получить декартово произведение ряда списков?
import itertools
first_range = list(zip((10**exp for exp in range(0,7)),(10**exp for exp in range(1,8))))
second_range = list(zip((5*10**exp if exp != 1 else 10**2 for exp in range(1,8)),(5*10**exp for exp in range(2,9))))
final_list = list(itertools.product(first_range,second_range))
Проблема с этим кодом заключается в том, что конечные результаты выглядят так:
[((1, 10), (100, 500)), ((1, 10), (500, 5000)), ((1, 10), (5000, 50000)), ((1, 10), (50000, 500000)), ((1, 10), (500000, 5000000)), ((1, 10), (5000000, 50000000)), ...
Где каждый элемент списка является кортежем, содержащим 2 других кортежа, в то время как я хочу вот что:
[(1, 10, 100, 500), (1, 10, 500, 5000), (1, 10, 5000, 50000), (1, 10, 50000, 500000), (1, 10, 500000, 5000000), (1, 10, 5000000, 50000000), ...
т.е. каждый элемент списка является кортежем, содержащим 4 целых числа.
Любые идеи будет оценена. Должен работать на python3. РЕДАКТИРОВАТЬ: Обновлены нерабочие части кода благодаря комментариям ShadowRanger