Я работал над другим вопросом. У меня есть список ниже
[(['1', '2', '3'], 'abc'), (['4', '5', '6'], 'xyz')]
Вывод должен быть ниже
[('1', 'abc'), ('2', 'abc'), ('3', 'abc'), ('4', 'xyz'), ('5', 'xyz'), ('6', 'xyz')]
Моя попытка
Сначала я раскрываю список внутри него
l1=[ tuple(i[0])+(i[1],) for i in l ]
print (l1)
[('1', '2', '3', 'abc'), ('4', '5', '6', 'xyz')]
Тогда попробовал продукт от itertools, но он не дает мне требуемого результата. Проблема в том, что «abc» разбивается на «a», «b», «c» с использованием продукта.
from itertools import product
[ list(product(i[:-1],i[-1])) for i in l1 ]
[[('1', 'a'),
('1', 'b'),
('1', 'c'),
('2', 'a'),
('2', 'b'),
('2', 'c'),
('3', 'a'),
('3', 'b'),
('3', 'c')],
[('4', 'x'),
('4', 'y'),
('4', 'z'),
('5', 'x'),
('5', 'y'),
('5', 'z'),
('6', 'x'),
('6', 'y'),
('6', 'z')]]