Как получить комбинацию элементов по списку списков по 2 элемента на Python
Подскажите, пожалуйста, как можно получить комбинацию элементов такого списка по 2 элементам из каждого подсписка. Дано:
from itertools import product
list1 = [[['a1', 66],['a2', 58],['a3', 56]],
[['b1', 66],['b2', 49],['b3', 51],['b4', 58]],
[['c1', 66],['c2', 53],['c3', 50]],
[['x1', 66],['x2', 53],['x3', 50]]
]
Чтобы получить из каждого подсписка все комбинации состоящие из одного элемента из каждого подсписка я делаю вот так:
list_product = list(product(*list1))
print(list_product)
>>>[(['a1', 66], ['b1', 66], ['c1', 66], ['x1', 66]),
(['a1', 66], ['b1', 66], ['c1', 66], ['x2', 53]),
(['a1', 66], ['b1', 66], ['c1', 66], ['x3', 50]),
(['a1', 66], ['b1', 66], ['c2', 53], ['x1', 66]),
.....
(['a3', 56], ['b4', 58], ['c3', 50], ['x3', 50])]
Но мне нужно чтобы из каждого подсписка бралось по 2 элемента, чтобы в итоге было вот так:
print(list_product)
>>>[(['a1', 66], ['a2', 58], ['b1', 66], ['b2', 49], ['c1', 66], ['c2', 53], ['х1', 66], ['х2', 53]),
(['a1', 66], ['a2', 58], ['b1', 66], ['b2', 49], ['c1', 66], ['c2', 53], ['х1', 66], ['х3', 50]),
....
(['a2', 58], ['a3', 56], ['b3', 51], ['b4', 58], ['c2', 53], ['c3', 50], ['х2', 53], ['х3', 50])]
Источник: Stack Overflow на русском