Python의 목록 교차

List Intersection Python



파이썬에는 다양한 데이터 유형을 저장하기 위해 많은 객체 변수가 존재합니다. NS 목록 이러한 변수 중 하나이며 다양한 요구에 따라 다양한 유형의 데이터를 저장할 수 있습니다. 때로는 프로그래밍 목적으로 여러 목록에서 공통, 비공통 또는 공통 및 비공통 데이터 항목을 모두 찾아야 합니다. Python에는 Python 집합에 대해 이러한 유형의 작업을 수행할 수 있는 몇 가지 내장 함수와 연산자가 포함되어 있습니다. 여러 목록에서 공통 데이터를 찾는 것을 목록 교차라고 하지만 여러 목록에서 공통 데이터 항목을 찾기 위한 집합과 같은 목록에 대한 기본 제공 함수나 연산자가 없습니다. 이 튜토리얼에서는 Python에서 목록을 교차하는 방법을 보여줍니다.

교차로

이 튜토리얼을 시작하기 전에 교집합의 개념을 설명합니다. 아래에 두 가지를 예로 들어 설명합니다.







목록1= [4, 7, 2. 3, 9, 6, 열하나]
목록2= [6, 5, 1, 스물, 9, 7, 4, ]

교차를 적용한 후 결과가 List3이라는 다른 목록에 저장되면 다음 데이터가 포함됩니다.



목록3= [4, 6, 7, 9]

List3의 그래픽 표현은 다음과 같습니다.







예제 1: set() 메서드를 통한 교차 목록

다음 예는 다음을 사용하여 두 목록을 교차하는 방법을 보여줍니다. 세트() 방법과 & 운영자. list1 및 list2라는 두 개의 목록이 여기에 선언됩니다. 이 두 목록 모두 숫자 값을 포함합니다. 세 번째 목록은 set을 통해 list1과 list 2를 집합으로 변환하여 생성됩니다. () 방법 및 교차를 사용하여 적용 & 운영자. 다음으로 세 목록의 값이 인쇄됩니다.

#!/usr/bin/env python3
# list1 정의
목록1= [22, 8, 오분의 사, 열하나, 3. 4, 9, 스물, 7]
# list2 정의
목록2= [12, 9, 스물, 78, 53, 8, 2, 30,31]
# list1과 list2를 교차시켜 list3 생성
목록3= 목록(세트(목록1)&세트(목록2))
# 목록 인쇄1
인쇄('목록1의 값:N',목록1)
# 목록 인쇄2
인쇄('목록2의 값:N',목록2)
# 목록 인쇄3
인쇄('list1과 list2를 교차한 후의 list3 값:N',목록3)

산출



스크립트를 실행하면 다음 출력이 나타납니다. 세 가지 값은 두 목록에 공통입니다. 이 값은 8, 9, 20이며 세 번째 목록의 내용에 표시됩니다.

예제 2: Intersection() 메서드를 통한 교차 목록

두 목록 간의 교차 값을 찾는 목록 개체에 대한 직접적인 기본 제공 방법은 없습니다. 그러나 세트에는 다음과 같은 내장 메소드가 있습니다. 교차로() , 집합 간의 공통 값을 찾습니다. 명명된 사용자 정의 함수 교차 목록() , 두 목록 사이의 공통 값을 찾기 위해 다음 스크립트에 정의되어 있습니다. 이 집합의 한 가지 제한 사항은 숫자 데이터만 포함할 수 있다는 것입니다. 목록 변수는 숫자, 부울 등을 포함한 다양한 유형의 데이터 문자열을 포함할 수 있습니다. 스크립트에서, 목록1 그리고 목록2 및 텍스트를 포함한 모든 문자열 데이터를 포함합니다. 스크립트는 다음 사이의 모든 공통 문자열과 숫자 값을 인쇄합니다. 목록1 그리고 목록2 .

#!/usr/bin/env python3

# 두 리스트의 교집합을 반환하는 함수 정의
데프교차 목록(목록1,목록2):
반품 세트(목록1).교차로(목록2)

# list1 정의
목록1= ['안녕하십니까','7','8','10','2']
# list2 정의
목록2= ['8','3.4','안녕하십니까','2','이십 일','1',10]
''' 저장할 사용자 정의 함수를 호출합니다.
list1과 list2의 교집합 결과
list3'''로

목록3=교차 목록(목록1,목록2)
# 목록 인쇄1
인쇄('목록1의 값:N',목록1)
# 목록 인쇄2
인쇄('목록2의 값:N',목록2)
# 목록 인쇄3
인쇄('list1과 list2를 교차한 후의 list3 값:N',목록3)

산출

스크립트를 실행하면 다음 출력이 나타납니다. 여기서 두 목록의 공통 값은 '2', '8', 'Hello'입니다.

예제 3: 루프 메서드를 통한 교차 목록

앞의 두 예는 내장 함수를 사용한 목록 교차를 보여줍니다. 다음 예제는 내장 함수가 없는 목록 교차를 보여줍니다. 이것은 루프를 사용하여 달성할 수 있습니다. 두 개의 텍스트 데이터 목록이 스크립트에서 선언됩니다. NS ~을위한 루프는 여기에서 다음 사이의 공통 텍스트 값을 찾는 데 사용됩니다. 목록1 그리고 목록2, 변수에 저장되며, 목록3 . 다음으로 이 세 가지 목록 변수의 값이 인쇄됩니다.

#!/usr/bin/env python3

# list1 정의
목록1= ['파르한','아비르','아카시','미나','마저']
# list2 정의
목록2= ['미나','모이나','노벨','더 가까이','아비르','파헨']
# for 루프를 사용하여 교차점을 찾고 결과를 list3에 저장
목록3= [~을위한~에목록1만약~에목록2]

# 목록 인쇄1
인쇄('목록1의 값:N',목록1)
# 목록 인쇄2
인쇄('목록2의 값:N',목록2)
# 목록 인쇄3
인쇄('list1과 list2를 교차한 후의 list3 값:N',목록3)

산출

스크립트를 실행하면 다음 출력이 나타납니다. 여기서 두 목록의 공통 텍스트 값은 다음과 같습니다. '아비르' 그리고 '미나.'

예제 4: filter() 메서드를 통해 단순 목록과 중첩 목록 교차

다음 예는 단순 목록과 중첩 목록 간의 교차를 보여줍니다. NS 필터() 방법 및 람다 함수는 스크립트에서 list1과 list2 사이의 교차를 수행하는 데 사용됩니다. 목록에 목록 항목으로 하나 이상의 목록이 포함된 경우 목록을 중첩 목록이라고 합니다. 여기, 목록1 간단한 목록이고 목록2 는 중첩 목록이고, 목록3 의 교차 값을 포함합니다. 목록1 그리고 목록2 .

#!/usr/bin/env python3

# 간단한 목록 정의
목록1= [22, 8, 오분의 사, 열하나, 3. 4, 9, 스물, 7]
# 중첩 목록 정의
목록2= [[12, 9, 스물], [78, 열하나, 53, 8], [2, 30, 31, 오분의 사]]
# filter()를 사용하여 list1과 list2를 교차하여 list3을 만듭니다.
목록3= [목록(필터(람다n: n~에목록1,슬리스트)) ~을위한슬리스트~에목록2]

# 목록 인쇄1
인쇄('목록1의 값:N',목록1)
# 목록 인쇄2
인쇄('목록2의 값:N',목록2)
# 목록 인쇄3
인쇄('list1과 list2를 교차한 후의 list3 값:N',목록3)

산출

스크립트를 실행하면 다음 출력이 나타납니다. list2 변수에는 세 개의 다른 목록이 목록 항목으로 포함됩니다. 따라서 결과는 list1과 list2의 세 하위 목록 간의 교차를 보여줍니다.

결론

목록 교차는 많은 수의 목록 항목을 포함하는 목록 간의 공통 값을 찾는 유용한 방법입니다. 내장 함수가 있거나 없는 목록 교차를 수행하는 방법이 이 자습서에 나와 있습니다. 이 기사를 읽은 후에는 목록 교차의 개념이 명확해야 하며 이 자습서에 표시된 대로 스크립트에서 목록 교차를 적용할 수 있어야 합니다.