Python에서 목록 빼기 수행

Rayven Esplanada 2023년10월10일
  1. Python에서 목록 빼기를 수행하기 위해 목록을set으로 변환
  2. 리스트 내포을 사용하여 Python에서 목록 차이 얻기
Python에서 목록 빼기 수행

이 자습서에서는 목록 빼기, 즉 Python에서 목록 빼기 목록을 수행하는 방법을 보여줍니다.

수학의 집합 이론에 의해 정의 된 것처럼 두 집합의 차이는 다른 집합에 존재하지 않는 한 집합의 요소를 나타냅니다.

예를 들어 다음 두 목록을 선언하면 :

list1 = [1, 2, 4]
list2 = [2, 3]

list1 - list2의 차이는[1, 4]이고list2 - list1[3]입니다.

Python에서 목록 빼기를 수행하기 위해 목록을set으로 변환

집합 이론 연산은 Python에서 지원됩니다. 그러나 set데이터 유형 만 이러한 작업을 지원합니다. 따라서 set연산을 사용하려면 목록을 집합으로 변환해야합니다. 이것은set()함수를 목록으로 감싸면 가능합니다.

참고: 목록을 집합으로 변환하면 모든 유형의 순서가 제거되고 목록에서 중복 값이 제거됩니다.

listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
setA = set(listA)
setB = set(listB)

print("A - B = ", setA - setB)

출력:

A - B =  {1, 4, 9, 14}

결과는 두 세트 간의 차이를 출력하고 중복 값을 제거합니다.

list()함수를 사용하여set의 결과를 목록으로 변환 할 수 있습니다.

listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
setA = set(listA)
setB = set(listB)

list_diff = list(setA - setB)

print("A - B: ", list_diff)

출력:

A - B:  [1, 4, 9, 14]

리스트 내포을 사용하여 Python에서 목록 차이 얻기

리스트 내포은 요소가 첫 번째 목록에만 존재하고 두 번째 목록에는 존재하지 않는지 확인하는 데 사용할 수 있습니다. 이 솔루션을 사용하면 목록을 집합으로 변환하지 않고도 차이 연산을 수행 할 수 있습니다.

listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]

listSub = [elem for elem in listA if elem not in listB]

print("A - B =", listSub)

출력:

A - B = [1, 4, 9, 14, 14]

이 솔루션은 목록의 순서를 어지럽히 지 않고 중복을 제거합니다.

그러나 listA에서는 값 11이 두 번 반복되고 11이 두 세트에 모두 존재하므로 A - B의 결과에서 11의 두 반복이 제거됩니다. 이 동작은 예상대로입니다.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

관련 문장 - Python List