숫자가 포함 된 목록 (하위 목록)이 있으며 모든 하위 목록에만 해당 목록을 유지하고 싶습니다.파이썬에서 하위 목록 중복 찾기 (계속)
예 :
x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]]
output => [3, 4]
내가 어떻게 할 수 있습니까?
숫자가 포함 된 목록 (하위 목록)이 있으며 모든 하위 목록에만 해당 목록을 유지하고 싶습니다.파이썬에서 하위 목록 중복 찾기 (계속)
예 :
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])
또는 list (reduce (set.intersection, x [1 :], set (x [0]))) – grokus
def f(a, b):
return list(set(a).intersection(set(b)))
reduce(f, x)
, 나디아 그러나 줄이고 사용하지 않고 거의 같은 해결 그냥 다른 방법으로, 나는지도를 사용합니다 :
>>> x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]]
>>> set.intersection(*map(set,x))
set([3, 4])
>>>
원래 set()으로 시작 했으므로 지금 수정되었습니다. –
네, 네가 네 글자를 수정하고 일한 답을 올렸지 만, 그때에 너는 그걸 편집 했잖아. 슬프게도, stackoverflow 내가 +1 upvoted, 이후 내 upvote undid 당신을 +1 못하게됩니다. 좋은 대답! –