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
의 두 반복이 제거됩니다. 이 동작은 예상대로입니다.
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