У меня есть список списков (подсписок), который содержит номера, и я хочу только сохранить их во всех (под) списках.
Пример:
x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]] output => [3, 4]
Как я могу это сделать?
common = set(x[0]) for l in x[1:]: common &= set(l) print list(common)
или
import operator print reduce(operator.iand, map(set, x))
В одном вкладыше:
>>> reduce(set.intersection, x[1:], set(x[0])) set([3, 4])
def f(a, b): return list(set(a).intersection(set(b))) reduce(f, x)
Просто еще один способ решения, почти такой же, как у Надии, но без использования Reduce, и я использую карту:
>>> x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]] >>> set.intersection(*map(set,x)) set([3, 4]) >>>