취뽀 기록

#열심히 살자 #취업 #공부

Python/[개념 및 문법]

[python] 2차원 리스트 사용하기

hyunnn_00 2023. 7. 17. 13:44

리스트 2개를 사용하면 2차원 리스트가 된다.

행과 열 개념이라고 생각하면 된다.

 

2차원 리스트를 생성해보자

a = [[10, 20],[30, 40],[50, 60]]

a에 있는 원소를 출력하려면

for i in a:
    for j in i:
        print(j)
-------------------------------------------
10
20
30
40
50
60

2개의 리스트를 사용하기 때문에 2개의 for문이 필요하다.

 

파이썬에서는 이렇게 간략하게 원소 출력도 가능하다.

for x, y in a:
	print(x, y)
----------------------------------------------------------
10 20
30 40
50 60

 


이번엔 for문을 이용해서 비어있는 2차원 리스트를 만들어보자.

a = []

for i in range(3):
    line = []
    for j in range(2):
        line.append(0)
    a.append(line)
print(a)
---------------------------------------------------
[[0, 0], [0, 0], [0, 0]]

값이 들어 있는 리스트가 아닌 값이 비어 있는 리스트가 생성되었다.

for문의 i를 통해 비어있는 리스트를 3개를 생성한 후

for문의 j와 append 함수를 통해 그 안에 원소 0을 두 번 추가하였다.

 

 

리스트 컴프리헨션을 이용하면

a = [[0 for j in range(2)] for i in range(3)]

이렇게도 표현 가능하다.

 

그리고 응용할 수 있다.

 

a = [[0]* i for i in [1, 2, 3, 4, 5]]
print(a)
-------------------------------------------------
[[0], [0, 0], [0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0]]

이렇게 길이가 다른 2차원 리스트도 생성할 수 있다.