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

파이썬 다차원 리스트 완벽 가이드: 생성부터 확장, 요소 접근까지

다차원 리스트란?

리스트(list)는 파이썬에서 가장 널리 사용되는 데이터 구조 중 하나로, 쉼표로 구분된 여러 요소를 하나의 변수에 담을 수 있습니다. 그런데 리스트 안에 또 다른 리스트가 포함될 수도 있는데, 이러한 구조를 중첩 리스트(nested list) 또는 다차원 리스트(multidimensional list)라고 부릅니다. 이 글에서는 다차원 리스트를 생성하는 방법과 요소에 접근하고 확장하는 방법까지 예제와 함께 살펴보겠습니다.

다차원 리스트 생성하기

아래 예제에서는 중첩된 for 루프를 활용한 리스트 컴프리헨션(list comprehension)으로 3개의 행과 4개의 열을 가진 다차원 리스트를 생성합니다. 바깥쪽 반복문이 행(row)을 만들고, 안쪽 반복문이 각 행에 들어갈 열(column)의 값을 채웁니다.

예제

multlist = [[0 for columns in range(4)] for rows in range(3)]
print(multlist)

출력

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

다차원 리스트 확장하기

생성된 다차원 리스트에는 리스트에서 제공하는 메서드를 사용해 새로운 요소를 추가할 수 있습니다. 대표적으로 append()extend() 메서드가 사용되며, 두 메서드의 차이는 다음과 같습니다.

  • append(): 새로운 리스트를 하나의 요소로 그대로 추가합니다. 즉, 다차원 리스트에 새로운 행을 추가하는 효과가 있습니다.
  • extend(): 특정 행(내부 리스트)에 여러 요소를 개별적으로 이어 붙입니다.

예제

multlist = [["Mon","Tue","Wed"], [2, 4, 9], [1,1.5, 2]]
multlist.append(["Phy","Chem","Math"])
print(multlist)

multlist[0].extend(["Thu","Fri"])
print(multlist)

출력

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

[['Mon', 'Tue', 'Wed'], [2, 4, 9], [1, 1.5, 2], ['Phy', 'Chem', 'Math']]
[['Mon', 'Tue', 'Wed', 'Thu', 'Fri'], [2, 4, 9], [1, 1.5, 2], ['Phy', 'Chem', 'Math']]

첫 번째 출력에서는 append()를 통해 새로운 리스트가 하나의 행으로 추가된 것을 확인할 수 있고, 두 번째 출력에서는 extend()를 통해 첫 번째 행에 'Thu'와 'Fri'가 개별 요소로 추가된 것을 볼 수 있습니다.

다차원 리스트 요소에 접근하기

다차원 리스트의 요소에는 for 루프를 사용해 접근할 수 있습니다. 바깥쪽 루프로 각 행을 순회하고, 안쪽 루프로 해당 행의 각 열(요소)에 차례대로 접근하는 중첩 for 루프 구조를 사용합니다.

예제

multlist = [[1,5,9], [2, 4, 9], [1,1, 2]]
for i in range(len(multlist)) :
    for j in range(len(multlist[i])) :
        print(multlist[i][j], end=" ")
    print()

출력

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

1 5 9
2 4 9
1 1 2

이처럼 multlist[i][j] 형태의 인덱싱을 활용하면 i번째 행의 j번째 요소에 직접 접근할 수 있으며, 이를 응용하면 다차원 리스트의 값을 자유롭게 읽고 수정할 수 있습니다.