티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
How to define a two-dimensional array?
2차원 배열을 정의하는 방법은?
문제 내용
I want to define a two-dimensional array without an initialized length like this:
다음과 같이 초기화된 길이 없이 2차원 배열을 정의하고자 합니다.
Matrix = [][]
But this gives an error:
그러나 다음과 같은 오류가 발생합니다.
IndexError: list index out of range
높은 점수를 받은 Solution
You're technically trying to index an uninitialized array. You have to first initialize the outer list with lists before adding items; Python calls this "list comprehension".
당신은 기술적으로 초기화되지 않은 배열을 인덱싱하려고 합니다. 항목을 추가하기 전에 먼저 리스트로 외부 리스트를 초기화해야 합니다. Python은 이것을 리스트 내포라고 합니다.
# Creates a list containing 5 lists, each of 8 items, all set to 0
w, h = 8, 5
Matrix = [[0 for x in range(w)] for y in range(h)]
#You can now add items to the list:
#이제 리스트에 항목을 추가할 수 있습니다.
Matrix[0][0] = 1
Matrix[6][0] = 3 # error! range...
Matrix[0][6] = 3 # valid
Note that the matrix is "y" address major, in other words, the "y index" comes before the "x index".
매트릭스는 "y"가 주소의 메이저입니다. 즉, "y 인덱스"는 "x 인덱스" 앞에 옵니다.
print Matrix[0][0] # prints 1
x, y = 0, 6
print Matrix[x][y] # prints 3; be careful with indexing!
Although you can name them as you wish, I look at it this way to avoid some confusion that could arise with the indexing, if you use "x" for both the inner and outer lists, and want a non-square Matrix.
이름을 원하는 대로 지정할 수 있지만, 내부 및 외부 목록에 모두 "x"를 사용하고 정사각형이 아닌 행렬을 원할 경우 인덱싱과 관련하여 발생할 수 있는 혼동을 피하기 위해 이 방법을 사용합니다.
가장 최근 달린 Solution
You can create an empty two dimensional list by nesting two or more square bracing or third bracket ([]
, separated by comma) with a square bracing, just like below:
아래와 같이 두 개 이상의 사각 괄호 또는 세 번째 괄호([, 쉼표로 구분)를 사각 괄호로 묶어서 빈 2차원 리스트를 만들 수 있습니다.
Matrix = [[], []]
Now suppose you want to append 1 to Matrix[0][0]
then you type:
이제 Matrix[0][0]에 1을 추가하고 싶다고 가정하고 다음을 입력합니다.
Matrix[0].append(1)
Now, type Matrix and hit Enter. The output will be:
이제 행렬을 입력하고 Enter를 누릅니다. 출력은 다음과 같습니다.
[[1], []]
If you entered the following statement instead
대신 다음 문을 입력한 경우
Matrix[1].append(1)
then the Matrix would be
그렇다면 매트릭스는
[[], [1]]
출처 : https://stackoverflow.com/questions/6667201/how-to-define-a-two-dimensional-array
'개발 > 파이썬' 카테고리의 다른 글
Python의 딕셔너리에서 임의 요소 접근하기 (0) | 2023.01.02 |
---|---|
데이터프레임 값에 NaN이 있는지 확인하기 (0) | 2023.01.02 |
리스트의 아이템 무작위로 섞기 (0) | 2022.12.31 |
문자열 리스트에서 빈 문자열 제거하기 (0) | 2022.12.31 |
pytest를 사용하여 오류 발생여부 확인하기 (0) | 2022.12.31 |