logo

두 목록의 교차점을 찾는 Python 프로그램

이 튜토리얼에서는 두 목록의 교집합을 얻는 방법에 대해 설명합니다. 두 목록의 교차점은 두 초기 목록 모두에 익숙한 요소를 모두 가져와야 함을 의미합니다.

파이썬 뛰어난 내장 데이터 구조로 유명합니다. Python 목록은 Python의 유명하고 가치 있는 내장 데이터 유형 중 하나입니다. 다양한 데이터 유형 값을 정렬된 순서로 저장할 수 있습니다. 그러나 집합과 같은 목록에는 내장된 함수가 없습니다.

nginx

Python은 목록의 교차를 수행하는 다양한 방법을 제공합니다. 다음 시나리오를 살펴보겠습니다.

입력 :

 list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] 

산출:

 [90, 11, 58, 31, 66, 28, 54] 

입력 :

 list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26] 

산출:

 [9, 11, 26, 28] 

두 목록의 교차점을 얻는 다음 방법을 살펴보겠습니다.

방법 - 1: for 루프 사용

 # Python program to get the intersection # of two lists in most simple way def intersection_list(list1, list2): list3 = [value for value in list1 if value in list2] return list3 # Driver Code list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2)) 

산출:

 [90, 11, 58, 31, 66, 28, 54] 

for 루프를 사용하여 두 목록에서 공통 값을 가져와 list3 변수에 저장했습니다.

방법 - 2: 목록을 집합으로 변환

 def intersection_list(list1, list2): return list(set(list1) & set(list2)) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2)) 

산출:

 [66, 90, 11, 54, 58, 28, 31] 

방법 - 3:

우리는 내장된 세트를 사용할 것입니다. 교차점() 방법. 그만큼 교차점() 세트의 일류 부품입니다. 다음 예를 이해해 봅시다.

예 -

자바의 문자열 길이
 # Python program to get the intersection # of two lists using set() and intersection() def intersection_list(list1, list2): return set(list1).intersection(list2) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2)) 

산출:

 {66, 90, 11, 54, 58, 28, 31} 

방법 - 4:

이 방법에서는 하이브리드 방식을 사용하겠습니다. 이는 작업을 수행하는 데 훨씬 효율적인 방법입니다. 다음 예를 이해해 봅시다.

예 -

 # Python program to get the intersection # of two lists def intersection(list1, list2): # Use of hybrid method temp = set(list2) list3 = [value for value in list1 if value in temp] return list3 list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection(list1, list2)) 

산출:

 [90, 11, 58, 31, 66, 28, 54] 

방법 - 5:

이 방법에서는 필터() 방법. 교차는 다른 목록 내의 하위 목록에 대해 수행됩니다. 다음 예를 이해해 봅시다.

예 -

 # Python program togetthe intersection # of two lists, sublists and use of filter() def intersection_list(list1, list2): list3 = [list(filter(lambda x: x in list1, sublist)) for sublist in list2] return list3 list1 = [10, 9, 17, 40, 23, 18, 56, 49, 58, 60] list2 = [[25, 17, 23, 40, 32], [1, 10, 13, 27, 28], [60, 55, 61, 78, 15, 76]] print(intersection_list(list1, list2)) 

산출:

 [[17, 23, 40], [10], [60]] 

그만큼 필터() 메서드는 하위 목록의 각 항목을 가져와 해당 항목이 list1에 있는지 확인합니다. 목록 이해는 list2의 각 하위 목록에 대해 실행됩니다.