Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 중첩 리스트에서 하위 리스트 인덱스 찾는 방법


이 튜토리얼에서는 중첩 리스트(리스트 안에 리스트가 포함된 구조)에서 특정 요소가 속한 하위 리스트의 인덱스를 찾는 프로그램을 작성해 보겠습니다. 먼저 예시를 통해 문제를 명확히 이해해 보겠습니다.

입력

nested_list = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]

출력

Index of 7:- 2
Index of 5:- 1
Index of 3:- 0

예를 들어 숫자 7은 세 번째 하위 리스트 [6, 7, 8, 9]에 포함되어 있으므로 인덱스 2가 반환됩니다. 마찬가지로 5는 두 번째 하위 리스트에, 3은 첫 번째 하위 리스트에 속합니다.

문제 해결 접근 방식

가장 간단하고 널리 사용되는 방법은 중첩 반복문을 활용하는 것입니다. 다음 단계를 따라 해결할 수 있습니다.

  • 중첩 리스트를 초기화합니다.
  • 인덱스를 기준으로 바깥 리스트를 순회합니다.
  • 각 하위 리스트를 순회하면서 찾고자 하는 요소와 일치하는지 확인합니다.
  • 요소를 찾으면 해당 하위 리스트의 인덱스를 출력하고 반복문을 종료합니다.

예제 코드

# 리스트 초기화
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]

# 인덱스를 찾는 함수
def find_index(element):
    # 요소 발견 여부를 추적하는 플래그 초기화
    is_found = False
    # 바깥 리스트 순회
    for i in range(len(nested_list)):
        # 하위 리스트 순회
        for j in range(len(nested_list[i])):
            # 요소 일치 여부 확인
            if nested_list[i][j] == element:
                # 요소가 포함된 하위 리스트의 인덱스 출력
                print(f'Index of {element}: {i}')
                # 플래그를 True로 변경
                is_found = True
                # 내부 반복문 종료
                break
        # 외부 반복문 종료
        if is_found:
            break
    # 요소를 찾지 못한 경우 처리
    if not is_found:
        print("Element is not present in the list")

find_index(7)
find_index(5)
find_index(3)

실행 결과

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Index of 7: 2
Index of 5: 1
Index of 3: 0

더 간결한 방법: enumerate 활용하기

range(len()) 조합 대신 enumeratein 연산자를 사용하면 코드를 훨씬 더 파이썬답게 작성할 수 있습니다.

def find_index(element):
    for i, sub_list in enumerate(nested_list):
        if element in sub_list:
            print(f'Index of {element}: {i}')
            return
    print("Element is not present in the list")

이 방법은 가독성이 뛰어나고 코드 길이도 크게 줄어들기 때문에 실무에서 더 권장됩니다.

마무리

이처럼 중첩 반복문이나 enumerate를 활용하면 중첩 리스트에서 원하는 요소가 어느 하위 리스트에 있는지 쉽게 찾을 수 있습니다. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨 주세요.