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