Группировка целых чисел по заданному членству в Python - PullRequest
3 голосов
/ 18 мая 2011

Работая в Python, учитывая список из N наборов целых чисел из диапазона диапазона (s, n), как я могу построить список, который группирует все эти целые числа в соответствии с их набором членства?Пример действительно поможет мне объяснить здесь:

Пример ввода (N = 2 комплекта):

integerRange = range(0,13)
input = [set([0,1,2,3,7,8,9,12]), set([0,1,2,3,4,5,6,12])]

Желаемый вывод:

out = [set([10,11]), set([4,5,6]), set([7,8,9]), set([0,1,2,3,12])]

Итак, ввывести каждое целое число в диапазоне (s, n), которое появляется ровно один раз, и есть 2 ^ N наборов.В этом примере out [0] содержит целые числа, которые ни в одном из множеств.out [1] содержит целые числа, которые находятся во втором наборе, но не в первом.out [2] содержит целые числа, которые в первом наборе, но не во втором.И, наконец, out [3] содержит целые числа, общие для обоих наборов.

Для 2 наборов это довольно просто ... но я поставлен в тупик для N наборов.У кого-нибудь есть подсказка?

1 Ответ

2 голосов
/ 18 мая 2011

Я даже сжимаюсь, думая об эффективности этого, но это довольно компактно:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...