리스트 내 요소들의 인덱스가 서로 일치하는지 확인해야 할 때는 간단한 반복문과 enumerate 함수를 활용하면 됩니다. 이 방법은 인덱스와 값을 동시에 얻을 수 있어 두 개의 리스트를 비교할 때 특히 유용합니다.
예제
아래는 실제 구현 예시입니다.
my_list_1 = [12, 62, 19, 79, 58, 0, 99]
my_list_2 = [12, 74, 19, 54, 58, 0, 11]
print("첫 번째 리스트 :")
print(my_list_1)
print("두 번째 리스트 :")
print(my_list_2)
my_list_1.sort()
my_list_2.sort()
print("정렬 후 첫 번째 리스트")
print(my_list_1)
print("정렬 후 두 번째 리스트")
print(my_list_2)
check_list = [9, 8, 2]
print("check_list :")
print(check_list)
my_result = True
for index, element in enumerate(my_list_1):
if my_list_1[index] != my_list_2[index] and element in check_list:
my_result = False
break
print("결과 :")
if(my_result == True):
print("인덱스별 요소가 리스트의 요소와 일치합니다")
else:
print("인덱스별 요소가 리스트의 요소와 일치하지 않습니다")출력 결과
첫 번째 리스트 : [12, 62, 19, 79, 58, 0, 99] 두 번째 리스트 : [12, 74, 19, 54, 58, 0, 11] 정렬 후 첫 번째 리스트 [0, 12, 19, 58, 62, 79, 99] 정렬 후 두 번째 리스트 [0, 11, 12, 19, 54, 58, 74] check_list : [9, 8, 2] 결과 : 인덱스별 요소가 리스트의 요소와 일치합니다
코드 설명
정수로 이루어진 두 개의 리스트를 정의하고 콘솔에 출력합니다.
sort() 메서드를 사용해 두 리스트를 오름차순으로 정렬한 뒤 다시 출력합니다.
비교 기준이 되는 또 다른 정수 리스트(check_list)를 정의하고 출력합니다.
결과를 저장할 불리언 변수를 True로 초기화합니다.
enumerate 함수를 사용해 첫 번째 리스트를 순회하면서 두 리스트의 같은 인덱스에 있는 요소들을 비교합니다.
인덱스 위치의 요소가 서로 다르고, 해당 요소가 check_list에 존재한다면 불리언 값을 False로 설정합니다.
조건이 충족되면 break 문으로 반복문을 즉시 종료하여 불필요한 연산을 줄입니다.
마지막으로 불리언 값에 따라 적절한 결과 메시지를 콘솔에 출력합니다.
참고 사항
enumerate 대신 zip() 함수를 사용해 두 리스트를 동시에 순회하는 방법도 있으며, 리스트 컴프리헨션과 all() 함수를 조합하면 더욱 간결하게 표현할 수 있습니다. 예를 들어 all(a == b for a, b in zip(my_list_1, my_list_2))처럼 작성하면 한 줄로 전체 일치 여부를 판단할 수 있습니다.