@Lepilov

Получить комбинацию из двух кортежей?

Ищу однострочник для получения комбинаций элементов двух кортежей.
tuple_one = ('one',  'two', .... 'thousand')    # name
tuple_two = ('blue',  'black',  'yellow', .......)    # color

Надо получить список кортежей , каждому элементу из первого кортежа соответствуют все элементы второго кортежа. Т.е если наглядно описать, есть товар и есть цвета товара, нужны пары содержащие все варианты цвета для товара.
[('one',  'blue'),  ('one',  'black',)  ('one',  'yelow') ....... ('two',  'blue'),  ('two',  'black',)  ('two',  'yelow')]

В итоге если есть 1000 товаров и 5 цветов на выходе имеем список длиной в 5к элементов

Когда то видел решение с использованием встроенного модуля оптимизированного под подобные задачи (типа collection или itertools), но сейчас не смог это найти.
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
sswwssww
@sswwssww
from itertools import product


tuple_one = ('one',  'two', 'thousand')    # name
tuple_two = ('blue', 'black',  'yellow')    # color
print(list(product(tuple_one, tuple_two)))

вывод:
[('one', 'blue'), ('one', 'black'), ('one', 'yellow'), ('two', 'blue'), ('two', 'black'), ('two', 'yellow'), ('thousand', 'blue'), ('thousand', 'black'), ('thousand', 'yellow')]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы