Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 두 목록에서 동일한 인덱스의 불일치 항목 찾기

<시간/>

때로는 값과 위치 또는 인덱스 측면에서 두 파이썬 목록의 요소를 비교해야 할 수도 있습니다. 이 기사에서는 같은 위치에 있는 두 목록에서 값이 일치하지 않는 요소를 찾는 방법을 볼 것입니다.

for 루프 사용

유사한 인덱스의 값을 비교하도록 for 루프를 설계할 수 있습니다. id 값이 일치하지 않으면 결과 목록에 인덱스를 추가합니다. for 루프는 먼저 첫 번째 인덱스의 값을 가져온 다음 if 조건을 사용하여 두 번째 목록의 값과 비교합니다.

listA= [13, 'Mon',23, 62,'Sun']
listB = [5, 'Mon',23, 6,'Sun']

# index variable
idx = 0

# Result list
res = []

# With iteration
for i in listA:
   if i != listB[idx]:
      res.append(idx)
   idx = idx + 1

# Result
print("The index positions with mismatched values:\n",res)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

The index positions with mismatched values:
[0, 3]

지퍼 포함

zip 함수는 각 인덱스의 요소를 비교할 때 더 짧은 코드를 작성하는 데 도움이 됩니다. 요소의 값이 일치하지 않는 위치에 대한 인덱스 값이 캡처됩니다.

listA= [13, 'Mon',23, 62,'Sun']
listB = [5, 'Mon',23, 6,'Sun']

res = [listB.index(n) for m, n in
      zip(listA, listB) if n != m]

# Result
print("The index positions with mismatched values:\n",res)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

The index positions with mismatched values:
[0, 3]

열거 포함

목록 중 하나에 열거 기능을 적용할 때 각 요소와 인덱스를 통과하는 for 루프가 있다는 점을 제외하면 zip 기능의 접근 방식과 유사합니다.

listA= [13, 'Mon',23, 62,'Sun']
listB = [5, 'Mon',23, 6,'Sun']

res = [idx for idx, elem in enumerate(listB)
                           if elem != listA[idx]]

# Result
print("The index positions with mismatched values:\n",res)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

The index positions with mismatched values:
[0, 3]