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은 토람코에 큰 힘이 됩니다 ♥