Python에서 교차점 나열

  1. &연산자를 사용하여 Python에서 목록 교차 가져 오기
  2. intersection()메서드를 사용하여 Python에서 목록 교차 가져 오기

이 자습서에서는 두 list 간의 교차점을 가져 오는 몇 가지 방법에 대해 설명합니다. ) 파이썬에서.

교차점 (또는 AND)은 기본적으로 sets를 위해 특별히 설계된 작업입니다. 두 세트의 공통 요소를 선택하여 작동합니다. 예를 들어,

setA = {1, 2, 3, 4, 5}
setB = {0, 2, 4, 6}

print(setA & setB)

출력:

{2, 4}

위의 예에서setAsetB는 두 세트이고 &연산자는 세트에서 교차 연산을 수행합니다.

기본적으로 Python은 목록에서 직접 교차 수행을 지원하지 않습니다. 하지만 약간만 수정하면 목록에서 교차를 수행 할 수도 있습니다.

&연산자를 사용하여 Python에서 목록 교차 가져 오기

위에서 설명한대로&연산자는 목록과 함께 사용할 수 없습니다. 따라서 set()메소드를 사용하여 목록을 집합으로 변경해야합니다.

list1 = [1, 2, 3, 4, 5]
list2 = [0, 2, 4, 6]

set1 = set(list1)
set2 = set(list2)

set3 = set1 & set2
list3 = list(set3)

print(list3)

출력:

[2, 4]

set()함수는 목록을 집합으로 변환합니다. &연산은 두 세트의 모든 공통 요소를 포함하는 세트를 반환합니다. 아시다시피, 집합보다는 목록에서이 작업을 수행해야합니다. 따라서list()함수를 사용하여이 집합을 목록으로 변환해야합니다.

intersection()메서드를 사용하여 Python에서 목록 교차 가져 오기

set 클래스의 intersection()메서드는 Python에서 집합에 교차를 수행하는 또 다른 방법입니다. &연산자와 유사하게 세트로만 제한됩니다. 그러나list1을 집합으로 변환하여list1과 함께intersection()을 사용할 수도 있습니다.

list1 = [1, 2, 3, 4, 5]
list2 = [0, 2, 4, 6]

set1 = set(list1)
set2 = set(list2)

set3 = set(list1).intersection(list2)
list3 = list(set3)

print(list3)

출력:

[2, 4]

intersection()메서드는 또한 모든 공통 요소 집합을 반환합니다. 따라서list()함수를 사용하여 목록으로 변환해야합니다.

리스트 내포를 사용하여 Python에서 교차로 나열 가져 오기

위에서 설명한 두 방법 모두 목록이 아닌 집합과 함께 작동하도록 설계되었습니다. 우리 모두는 집합이 되풀이 값을 가질 수없고 그 요소가 정렬되지 않음을 알고 있기 때문에 목록에 되풀이 값이 있거나 목록에 순서를 유지하려는 경우 이러한 함수가 제대로 작동하지 않습니다.

이전 두 가지 방법의 단점이이 코딩 예제에서 설명됩니다.

list1 = [1, 2, 3, 2, 4, 5]
list2 = [0, 2, 2, 4, 6]

setintersection = list(set(list1) & set(list2))
intersectionmethod = list(set(list1).intersection(list2))

print("The result of set intersection :")
print(setintersection)
print("The result of intersection() method :")
print(intersectionmethod)

출력:

The result of set intersection :
[2, 4]
The result of intersection() method :
[2, 4]

위와 같이[2, 2, 4]가 올바른 결과로 예상되지만[2, 4]만 표시됩니다.

목록 이해는 Python의 목록에서 AND연산을 수행하는 또 다른 방법입니다. 반복되는 값을 처리 할 수 ​​있으며 위의 두 가지 방법에서 유지되지 않는 요소의 순서도 유지할 수 있습니다.

#Solution 2 Using list comprehensions
list1 = [1, 2, 3, 2, 4, 5]
list2 = [0, 2, 2, 4, 6]
list3 = [x for x in list1 if x in list2]
#all the x values that are in A, if the X value is in B
print(list3)

출력:

[2, 2, 4]

관련 문장 - Python List

  • Python에서 두 목록 곱하기
  • Python에서 목록 동등성 확인