내부 요소도 목록인 목록을 가질 수 있습니다. 이러한 경우 내부 목록에서 공통 요소를 찾아야 할 필요가 있을 수 있습니다. 이 기사에서 우리는 이를 달성하기 위한 접근 방식을 찾을 것입니다.
지도 및 교차로 포함
교집합은 서로 다른 집합 간의 공통 요소를 찾는 간단한 수학적 개념입니다. Python에는 둘 이상의 집합 간의 유사성을 포함하는 집합을 반환하는 집합 메서드가 있습니다. 그래서 먼저 map 함수를 통해 목록의 요소를 집합으로 변환한 다음 이 변환된 모든 목록에 set 메서드를 적용합니다.
예시
listA = [['Mon', 3, 'Tue', 7,'Wed',4],['Thu', 5,'Fri',11,'Tue', 7],['Wed', 9, 'Tue', 7,'Wed',6]] # Given list print("Given list of lists : \n",listA) # Applying intersection res = list(set.intersection(*map(set, listA))) # Result print("The common elements among inners lists : ",res)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Given list of lists : [['Mon', 3, 'Tue', 7, 'Wed', 4], ['Thu', 5, 'Fri', 11, 'Tue', 7], ['Wed', 9, 'Tue', 7, 'Wed', 6]] The common elements among inners lists : ['Tue', 7]
감소 및 람다 사용
파이썬에서 reduce 함수를 적용할 수도 있습니다. 이 함수는 전달된 시퀀스에서 언급된 모든 목록 요소에 대한 인수로 전달된 주어진 함수를 적용하는 데 사용됩니다. 람다 함수는 집합이 적용된 후 각 중첩 목록을 반복하여 공통 요소를 찾습니다.
예시
from functools import reduce listA = [['Mon', 3, 'Tue', 7,'Wed',4],['Thu', 5,'Fri',11,'Tue', 7],['Wed', 9, 'Tue', 7,'Wed',6]] # Given list print("Given list of lists : \n",listA) # Applying reduce res = list(reduce(lambda i, j: i & j, (set(n) for n in listA))) # Result print("The common elements among inners lists : ",res)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Given list of lists : [['Mon', 3, 'Tue', 7, 'Wed', 4], ['Thu', 5, 'Fri', 11, 'Tue', 7], ['Wed', 9, 'Tue', 7, 'Wed', 6]] The common elements among inners lists : ['Tue', 7]