Python 프로그래밍에서 두 목록을 비교하는 것은 여러 접근 방식을 사용하는 일반적인 작업입니다. 이 기사에서는 두 목록 사이의 차이점을 파악하고 목록 처리 및 데이터 비교 능력을 향상시키는 다양한 방법을 살펴봅니다. 파이썬 . 목록 간의 차이점을 식별하기 위한 다양한 전략에 대한 통찰력 있는 여정에 참여하세요.
예
Input: list1 = [10, 15, 20, 25, 30, 35, 40] list2 = [25, 40, 35] Output: [10, 15, 20, 30] Explanation: resultant list = list1 - list2>
메모: 동일한 요소가 여러 개 있으면 작동하지 않습니다. 이 경우 이 코드는 단순히 동일한 요소를 제거합니다.
이 경우 두 목록 모두에서 각 요소의 개수를 유지할 수 있습니다.
Python에서 두 목록을 비교하는 방법
Python에서는 두 목록을 비교하는 다양한 방법이 있습니다. 여기서는 Python에서 두 목록을 비교하기 위해 일반적으로 사용되는 몇 가지 방법에 대해 논의합니다.
- 방법에 사용
- 목록 이해 사용
- 사용 세트() 기능
- 사용 넘피
- 사용 지퍼() 기능
- 다음을 사용하여 발생 횟수 계산 카운터
Python의 두 목록을 비교하는 키워드의 Python
이 예제에서 코드는 'li1' 목록의 요소를 반복하고 'li2' 목록에 요소가 없으면 각 요소를 'temp3'에 추가합니다. 'temp3'의 최종 결과에는 'li2'에 없는 'li1'의 요소가 포함되어 있습니다.
파이썬3
문자열 배열 C
li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> temp3>=> []> for> element>in> li1:> >if> element>not> in> li2:> >temp3.append(element)> print>(temp3)> |
>
>
산출
[10, 15, 20, 30]>
목록 이해를 사용하여 Python에서 두 목록의 차이점
이 예제 코드에서는 'li2' 목록의 요소에서 's' 집합을 생성한 다음 's' 집합에 없는 목록 'li1'의 요소를 포함하는 새 목록 'temp3'을 생성합니다. 마지막으로 'temp3'의 요소를 인쇄합니다.
파이썬3
자바 대체 문자열
li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> s>=> set>(li2)> temp3>=> [x>for> x>in> li1>if> x>not> in> s]> print>(temp3)> |
>
>
산출
[10, 15, 20, 30]>
set()을 사용하여 Python에서 두 목록의 차이점 찾기
이 방법에서는 목록을 명시적으로 집합으로 변환한 다음 빼기 연산자를 사용하여 목록을 다른 목록에서 간단히 줄입니다. 세트장 방문에 대한 더 많은 참고사항은 Python의 집합 . 이전에 사용했던 것과 유사한 기술입니다. 유일한 차이점은 중첩 루프를 목록 이해 통사론.
파이썬3
li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> s>=> set>(li2)> temp3>=> [x>for> x>in> li1>if> x>not> in> s]> print>(temp3)> |
>
>
산출
[10, 15, 20, 30]>
Numpy를 사용하여 Python에서 두 목록 비교
그만큼 numpy.concatenate() 함수는 기존 축을 따라 일련의 배열을 연결합니다. 이 예제 코드에서는 NumPy를 사용하여 `li1` 및 `li2` 배열을 만들고, 이들 사이에 설정된 차이점(`dif1`과 `dif2`)을 찾은 다음 이러한 차이점을 단일 목록(`temp3`)으로 연결하고 최종적으로 다음을 인쇄합니다. 결과.
파이썬3
int를 문자열로 변환 C++
import> numpy as np> li1>=> np.array([>10>,>15>,>20>,>25>,>30>,>35>,>40>])> li2>=> np.array([>25>,>40>,>35>])> dif1>=> np.setdiff1d(li1, li2)> dif2>=> np.setdiff1d(li2, li1)> temp3>=> np.concatenate((dif1, dif2))> print>(>list>(temp3))> |
>
문자열 정수
>
산출
[10, 15, 20, 30]>
zip() 함수를 사용하여 Python에서 두 목록 비교
이 예제 코드에서는 두 목록 li1 및 li2의 해당 요소를 비교하고 요소가 동일한지 여부를 나타내는 부울 값 목록을 만듭니다. `all` 함수는 결과 목록의 모든 요소가 True인지 확인합니다.
파이썬3
li1>=> [>10>,>15>,>20>]> li2>=> [>25>,>40>,>35>]> result>=> [a>=>=> b>for> a, b>in> zip>(li1, li2)]> print>(>all>(result))> |
>
>
산출
False>
카운터를 사용하여 개수 발생을 사용하여 두 목록 비교
이 예제 코드에서는 `collections` 모듈의 `Counter` 클래스를 사용하여 `li1` 및 `li2`라는 두 목록에 대한 빈도 카운터를 생성합니다. 그런 다음 카운터를 비교하여 목록에 동일한 빈도의 동일한 요소가 있는지 확인하고 결과를 'are_lists_equal'에 할당합니다.
파이썬3
배쉬 엘리프
from> collections>import> Counter> li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> counter1>=> Counter(li1)> counter2>=> Counter(li2)> are_lists_equal>=> counter1>=>=> counter2> print>(are_lists_equal)> |
>
>
산출
False>