Responsive Advertisement

파이썬 프로그래밍 - 자료형, 리스트 자료형, 중첩 리스트, 리스트 길이 len()

파이썬에서는 리스트 안에 또 다른 리스트를 포함시킬 수 있습니다 .이를 중첩리스트라고 합니다. 중첩리스트는 데이터를 계층적으로 관리하거나 구조적으로 배열하는 데 유용하게 활용할 수 있어요. 중첩 리스트와 관련한 내용을 살펴보겠습니다.

썸네일

중첩 리스트 만들기

중첩 리스트는 리스트 안에 또 다른 리스트를 넣음으로써 생성할 수 있습니다. 다음과 같은 코드를 작성해 보겠습니다.

day = ["mon", "tue", "wed", "thu", "fri"]  
num = [1, 2, 3, 4, 5]  
xlist = [day, num]

여기에서 day와 num은 각각 리스트이고, 이를 포함하는 xlist는 중첩 리스트가 됩니다. xlist는 두 개의 리스트를 항목으로 가지는 리스트이면서 계층적인 데이터를 효율적으로 관리할 수 있는 구조가 됩니다.

중첩 리스트의 인덱스

중첩 리스트에서도 항목에 접근하기 위해 인덱스를 사용합니다. 리스트가 중첩되어 있기 때문에 2차원 배열처럼 인덱스가 동작하는데, 그 내용은 다음과 같습니다.

  • 첫 번째 인덱스: 바깥 리스트의 항목 위치를 가리킨다.
  • 두 번째 인덱스: 바깥 리스트의 특정항목(리스트)에 접근하여 그 안에 포함된 항목의 위치를 가리킨다.

예를 들어, 위에서 선언한 xlist를 기준으로 보면,

  • "tue"는 day 리스트의 1번 인덱스 항목이므로 xlist[0][1]로 접근할 수 있다.
  • 숫자 3은 num 리스트의 2번 인덱스 항목이므로 xlist[1][2]로 접근할 수 있다.

이처럼 중첩 리스트는 계층 구조에 따라 인덱스를 두 번 이상 사용하여 자료에 접근할 수 있습니다.

리스트의 길이 확인 len

리스트의 길이를 확인하기 위해 len() 함수를 사용할 수 있습니다. len()은 리스트에 포함된 항목의 수를 반환합니다.

xlist = [["mon", "tue", "wed"], [1, 2, 3, 4]]
print(len(xlist))  # 출력: 2

위 코드에서 len(xlist)의 결과는 2입니다. 이는 xlist가 두 개의 항목(["mon", "tue", "wed"]와 [1, 2, 3, 4])을 가지고 있기 때문입니다. 중첩 리스트의 내부 리스트에 포함된 항목 수를 알고 싶다면 해당 내부 리스트를 대상으로 len()함수를 사용하면 됩니다.

print(len(xlist[0]))  # 출력: 3
print(len(xlist[1]))  # 출력: 4

중첩 리스트를 활용한 데이터 구조화

중첩 리스트는 데이터를 계층적으로 관리할 수 있다는 점에서 강력한 도구입니다. 예를 들어, 학교의 학급별 학생 명단을 저장하려고 한다면 중첩 리스트를 활용할 수 있어요.

students = [
    ["Alice", "Bob", "Charlie"],  # 1학년
    ["David", "Eva", "Frank"],    # 2학년
    ["Grace", "Helen", "Ian"]     # 3학년
]

위와 같은 경우 각 학년의 학생 명단은 리스트로 관리되고, 전체 학급 명단은 중첩 리스트로 구성됩니다. 만약에 2학년의 첫 번째 학생에게 접근하려면 students[1][0]을 사용하면 됩니다. 반복문을 배우지 않았지만, 모든 학년의 학생 수를 알고 싶다면 다음과 같이 len() 함수를 활용한 반복문을 사용하면 됩니다.

for i in range(len(students)):
    print(f"{i + 1}학년 학생 수: {len(students[i])}")

중첩 리스트와 반복문

중첩 리스트를 다룰 때 반복문을 활용하면 데이터를 효율적으로 처리할 수 있습니다. 예를 들어 중첩 리스트의 모든 항목을 출력하려면 다음과 같은 중첩 반복문을 사용할 수 있어요.

for sublist in xlist:
    for item in sublist:
        print(item, end=" ")

이 코드는 xlist의 각 리스트를 반복하며 내부 리스트의 모든 항목을 출력하는 반복문이에요.

중첩 리스트 응용 예시

중첩 리스트는 2차원 공간 데이터를 관리할 때도 유용합니다. 2차원 좌표 데이터를 다음과 같이 저장할 수 있어요.

coordinates = [
    [0, 0],  # 원점
    [1, 2],  # 첫 번째 점
    [3, 4],  # 두 번째 점
]

이 데이터를 활용하여 각 점의 위치를 출력하거나 계산할 수도 있겠죠?

for point in coordinates:
    print(f"Point: x={point[0]}, y={point[1]}")

마치며

중첩 리스트는 데이터를 구조적으로 관리하고 계층적으로 표현할 때 유용합니다. 반복문이나 문자열을 출력하는 다양한 방법에 대해 아직 잘 몰라서 어떻게 활용되는지 명확하게 알기 어려울 수도 있지만, 나중에는 복잡한 데이터를 다루기 위해 사용하게 될 거예요. 인덱스와 len()함수, 반복문을 활용하여 중첩 리스트를 사용하면 데이터를 보다 체계적으로 관리하고 다양한 응용 프로그램을 작성할 수 있게 될 거예요.

{getContent} $results={5} $label={recent} $type={block}