:: python

python :: 파이썬 1, 2, 3차원 배열(list) 선언 및 초기화(with java)

토람이 2022. 8. 23. 19:43

1. 1차원 배열 선언

java 에서 배열을 선언할 경우 다음과 같이 선언한다.

int[] a = new int[10]  // size=10 정수 배열
String[] b = new String[5]  // size=5 문자열 배열
...

이와 같이 java 에서는 어떤 type 의 데이터 배열을 생성할 것인지 미리 지정한다.

 

python 에서는 데이터 타입을 지정하지 않아도 된다.

a = []

 

이렇게 빈 리스트를 선언해두고 다양한 타입의 값을 넣을 수 있다.

 

 

위와 같이 정수와 문자열을 같은 list 에 때려 넣어도 문제 없이 잘 들어간다!

 

 

2. 1차원 배열 초기화

java 의 경우 배열을 선언할 때 크기를 지정한다.

int[] a = new int[10]

 

여기서 a는 길이가 10인 일차원 정수 배열을 뜻하며,

선언과 동시에 배열 내 10개의 각각의 자리는 초기화된다.

즉, 정수 배열의 경우 0, boolean 배열의 경우 False 등의 초기값이 들어가게 된다.

 

하지만 python 의 경우 크기를 지정하지 않고 배열을 선언하기 때문에

a = []

 

위와 같이 선언한 직후 a 배열에는 아무 것도 들어있지 않게 된다.

 

 

만약 파이썬에서도 처음부터 특정 크기의 배열을 만들어두고 싶다

a = [None] * 5
# [None, None, None, None, None]

b = [0] * 3
# [0, 0, 0]

이런 식으로 초기값을 원하는 size 만큼 곱해주면 된다.

 

 

3. 2차원 배열 선언

그렇다면 2차원 배열은 어떨까?

java 에서는 일차원 배열 선언에 차원이 하나 더 추가된 형태라고 보면 된다.

int[][] a = new int[2][3]

 

python 에서는 다음과 같이 선언한다.

a = [[]]

 

a = [][] 와 같은 형태가 아닌, 리스트 안에 리스트가 들어있는 형태임을 주의하자.

 

 

4. 2차원 배열 초기화

java 에서는 역시나 선언과 동시에 배열 내 값의 초기화가 이루어진다.

python 에서 이차원 배열을 초기화하고자 할 경우 다음과 같이 사용한다.

a = [[False for col in range(3)] for row in range(2)]
print(a)
# [[False, False, False], [False, False, False]]

 

코드 한 줄만으로 'False' 값으로 채워진 2행 3열의 리스트가 생성되었다.

 

 

이후 더 높은 차원의 배열 또한 동일한 규칙을 통해 늘려서 선언하면 된다.

예를 들어 3차원 파이썬 리스트는,

 a = [[[0 for z in range(1)] for y in range(2)] for x in range(3)]
 print(a)
 # [[[0], [0]], [[0], [0]], [[0], [0]]]

이런 식으로 선언할 수 있다 ;)

 

 

 

광고 cIick은 토람코에 큰 힘이 됩니다 ♥

300x250