Python에서 목록 연합 가져오기

Jay Prakash Gupta 2023년1월30일
  1. Python에서 공통 요소를 반복하여 두 목록의 합집합 얻기
  2. Python에서 공통 요소를 반복하지 않고 두 목록의 합집합 얻기
  3. Python에서 두 개 이상의 목록의 합집합 얻기
Python에서 목록 연합 가져오기

목록의 합집합은 서로 다른 목록의 모든 요소가 단일 목록에 포함됨을 의미합니다. 두 개 또는 두 개 이상의 목록의 합집합을 찾을 수 있습니다. 목록 연합을 달성하는 다양한 방법이 있습니다. 모든 방법은 충분한 코드 예제와 함께 아래에 설명되어 있습니다.

Python에서 공통 요소를 반복하여 두 목록의 합집합 얻기

+ 연산자를 사용하여 두 목록을 추가하여 두 목록의 합집합을 얻을 수 있습니다.

예제 코드:

l1 = [1, 2, 3, 4, 5]
l2 = [2, 4, 6.8, 10]

l3 = l1 + l2

print("l1: ", l1)
print("l2: ", l2)
print("Union of l1 and l2 with element repetition: ", l3)

출력:

l1:  [1, 2, 3, 4, 5]
l2:  [2, 4, 6.8, 10]
Union of l1 and l2 with element repetition:  [1, 2, 3, 4, 5, 2, 4, 6.8, 10]

목록 l1l2의 합집합을 찾고 결과를 l3에 저장합니다. 출력에서 목록 피연산자에서 동일한 요소가 반복되는 경우 합집합을 찾는 동안 요소가 반복되었음을 알 수 있습니다.

Python에서 정렬 된 순서로 두 목록의 합집합 가져 오기

정렬된 방식으로 목록의 합집합을 찾으려면 sorted() 메서드를 사용하여 합집합 작업 후에 얻은 목록을 정렬합니다.

코드:

l1 = [11, 20, 1, 2, 3, 4, 5]
l2 = [2, 4, 6, 8, 10]

union_l1_l2 = l1 + l2
l3 = sorted(union_l1_l2)

print("l1: ", l1)
print("l2: ", l2)
print("Sorted union of two l1 and l2 : ", l3)

출력:

l1:  [11, 20, 1, 2, 3, 4, 5]
l2:  [2, 4, 6, 8, 10]
Sorted union of two l1 and l2 :  [1, 2, 2, 3, 4, 4, 5, 6, 8, 10, 11, 20]

+ 연산자를 사용하여 목록 l1l2의 합집합을 계산하고 합집합을 union_l1_l2에 저장합니다. sorted() 메소드를 사용하여 union_l1_l2 목록의 요소를 정렬하여 l1l2의 합집합을 정렬된 방식으로 얻습니다.

Python에서 공통 요소를 반복하지 않고 두 목록의 합집합 얻기

파이썬에서 집합은 요소의 복제를 허용하지 않는 데이터 유형입니다. 따라서 set()을 사용하여 공통 요소의 반복 없이 두 목록의 합집합을 얻을 수 있습니다.

코드:

def union_without_repetition(list1, list2):
    result = list(set(list1 + list2))
    return result


l1 = [1, 2, 3, 4, 5]
l2 = [2, 4, 6, 8, 10]
l3 = union_without_repetition(l1, l2)

print("l1: ", l1)
print("l2: ", l2)
print("Union of two l1 and l2 without repetition : ", l3)

출력:

l1:  [1, 2, 3, 4, 5]
l2:  [2, 4, 6, 8, 10]
Union of two l1 and l2 without repetition :  [1, 2, 3, 4, 5, 6, 8, 10]

여기에서 + 연산자를 사용하여 l1l2의 합집합을 찾고 set() 기능을 사용하여 고유한 요소만 선택한 다음 마지막으로 list() 기능을 사용하여 집합을 목록으로 변환합니다.

Python에서 두 개 이상의 목록의 합집합 얻기

우리는 이미 두 목록의 합집합을 계산했습니다. 그러나 두 개 이상의 목록의 합집합을 찾는 경우 수행할 작업입니다. 매우 간단합니다. set()union() 내장 파이썬 함수를 모두 사용하여 두 개 이상의 목록의 합집합을 찾을 수 있습니다.

코드:

def union(lst1, lst2, lst3):
    final_list = list(set().union(lst1, lst2, lst3))
    return final_list


l1 = [1, 2, 3, 4, 5]
l2 = [2, 4, 6, 8, 10]
l3 = [5, 6, 7, 8, 11, 15, 18]
print("l1: ", l1)
print("l2: ", l2)
print("l3 : ", l3)
print("Union of more than l1 l2 and l3: ", union(l1, l2, l3))

출력:

l1:  [1, 2, 3, 4, 5]
l2:  [2, 4, 6, 8, 10]
l3 :  [5, 6, 7, 8, 11, 15, 18]
Union of more than l1 l2 and l3:  [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 18]

여기서는 set() 생성자를 사용하여 set 객체를 생성한 다음 해당 객체에 대해 union() 메서드를 호출합니다. union() 메서드는 list 개체를 원하는 수만큼 가져와서 해당 개체의 합집합을 반환할 수 있습니다.

이 경우 set 클래스의 union() 메서드를 사용하므로 반복되는 요소를 얻지 못합니다.

관련 문장 - Python List