Создание всех возможных комбинаций, заданных строкой в ​​списке - PullRequest
1 голос
/ 08 июля 2019

Как бы вы, ребята, пошли на создание комбинаций по заданной строке?

Пример: у меня есть сотрудник по имени Джон, и я хотел бы посмотреть, как он будет выглядеть, если сгруппироваться с 3 другими сотрудниками.

Количество человек в компании составляет 136 человек.

Teammates = ['john', 'lizzy', 'tom', 'sarah', 'tiffany', 'max', 'james', 'alice', 'bob']

Ожидаемый результат:

Which co worker?: John

['john', 'lizzy', 'tom', 'sarah',]
['john', 'lizzy', 'tom', 'max']
['john', 'lizzy', 'tom', 'james']
['john', 'lizzy', 'tom', 'alice']
['john', 'lizzy', 'tom', 'bob']
['john', 'tiffany', 'max', 'james']

Я пытался использовать перестановки itertools. Имена, которые у меня есть, хранятся в базе данных sql. Я попытался изменить свой SQL-запрос, чтобы расставить приоритеты для моего целевого сотрудника и выполнить итерацию против других сотрудников.

1 Ответ

0 голосов
/ 08 июля 2019

Вы можете использовать itertools.combission для этого:

import itertools as it

def teammate_combinations(who, group_size)
    return (x for x in it.combinations(teammates, group_size) if who in x)

teammate_combinations('john', 4)
...