Найти (и сохранить) дубликаты подсписка в python

У меня есть список списков (подсписок), который содержит числа, и я хочу, чтобы они существовали только во всех (под)списках.

Пример:

x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]]

output => [3, 4]

Как я могу это сделать?


person Mike    schedule 12.11.2009    source источник


Ответы (3)


В одном вкладыше:

>>> reduce(set.intersection, x[1:], set(x[0]))
set([3, 4])
person Nadia Alramli    schedule 12.11.2009
comment
или список (уменьшить (set.intersection, x [1:], set (x [0]))) - person grokus; 12.11.2009

Просто другой способ решения, почти такой же, как у Надии, но без использования сокращения, и я использую карту:

>>> x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]]
>>> set.intersection(*map(set,x))
set([3, 4])
>>>
person James    schedule 30.01.2014

person    schedule
comment
Первоначально я начал с set(), теперь это исправлено. - person Ned Batchelder; 12.11.2009
comment
Да, я опубликовал ответ, который изменил ваш и сработал, но к тому времени, когда я вернулся, вы его отредактировали. К сожалению, stackoverflow не позволит мне +1 вам, так как я проголосовал за, а затем отменил свой голос. Отличный ответ, однако! - person Dominic Rodger; 12.11.2009