Как создать новый список, представляющий собой комбинацию двух разных элементов списка без повторения? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь создать холст, который имеет 2 стимула.Обратите внимание, что списки стимулов могут быть длиннее.

sti1 = ["death", "pain"]
sti2 = ["glass", "book"]

Эти стимулы будут отображаться так:

кадр 1: смерть - книга / кадр 2: стекло - боль

Но они должны правильно перемешать.Я имею в виду, если есть комбинация «смерть х книга», не должно быть другой.Также должны быть показаны все комбинации.Кроме того, все кадры должны содержать одно слово из sti1 и одно слово из sti2.

Вот то, что я подумал:

  1. создать список комбинаций, который содержит всекомбинации.

  2. использовать для цикла для итерации.

Если есть другое решение, кроме создания списка комбинаций и его итерации, я открытк новым вещам.

Я пытался: random.choice itertools.permutations itertools.combinsk (самый близкий ответ, но он может просто объединить 1 список, как sti1)

Ожидаемый результат: комбинация_лист = [(смерть, стекло), (смерть, книга), (боль, стекло), (боль, книга)]

1 Ответ

0 голосов
/ 01 февраля 2019

Для этого вы хотите itertools.product:

from itertools import product
list(product(sti1,sti2))
[('death', 'glass'), ('death', 'book'), ('pain', 'glass'), ('pain', 'book')]
...