Как создать список пар слов - PullRequest
2 голосов
/ 11 ноября 2011

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

Из списка слов:

mama
papa
sister
brother

должно быть на выходе

mama papa
sister brother
mama sister
papa sister
brother mama

и т. Д.

Кто-то, кто знает, как лучше всего это сделать?

Ответы [ 2 ]

6 голосов
/ 11 ноября 2011
words = ["mama", "papa", "sister", "brother"]
pairs = list(itertools.product(words, repeat=2))
print pairs

отпечатки

[('mama', 'mama'),
 ('mama', 'papa'),
 ('mama', 'sister'),
 ('mama', 'brother'),
 ('papa', 'mama'),
 ('papa', 'papa'),
 ('papa', 'sister'),
 ('papa', 'brother'),
 ('sister', 'mama'),
 ('sister', 'papa'),
 ('sister', 'sister'),
 ('sister', 'brother'),
 ('brother', 'mama'),
 ('brother', 'papa'),
 ('brother', 'sister'),
 ('brother', 'brother')]
5 голосов
/ 11 ноября 2011
words = ["mama", "papa", "sister", "brother"]
pairs = list(itertools.permutations(words, 2))
print pairs

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

...