스택큐힙리스트
파이썬에서 2차원 배열을 초기화하는 방법은 무엇인가요? 본문
나는 Python을 시작하고 이차원 리스트를 사용해보려고 합니다. 먼저 모든 공간에 동일한 변수를 채우는 방법을 생각해 보았습니다. 이것이 내가 만든 코드입니다.
def initialize_twodlist(foo):
twod_list = []
new = []
for i in range (0, 10):
for j in range (0, 10):
new.append(foo)
twod_list.append(new)
new = []
원하는 결과를 제공하지만, 우회적인 느낌이 들어요. 이를 더 쉽거나 짧게, 더 미려하게하는 방법은 없을까요?
답변 1
파이썬에서 이차원 리스트를 초기화하려면 다음과 같이 사용합니다.
t = [ [0]*3 for i in range(3)]
하지만 [[v]*n]*n는 사용하지 마세요, 그것은 함정입니다!
>>> a = [[0]*3]*3
>>> a
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> a[0][0]=1
>>> a
[[1, 0, 0], [1, 0, 0], [1, 0, 0]]
답변 2
Python에서 2차원 배열을 초기화하는 방법은 매우 간단합니다. 2차원 배열을 생성하고 초기화하는 방법에 대해 설명하겠습니다.우선, 2차원 배열을 생성하려면 다음과 같이 코드를 작성합니다.
```python
array = [[0 for x in range(n)] for y in range(m)]
```
위 코드에서, `array`는 초기화될 2차원 배열의 이름입니다. `n`과 `m`은 각각 배열의 행과 열의 크기입니다. 위 코드는 `m`개의 길이가 `n`인 리스트를 생성하고 각 요소를 0으로 초기화합니다.
예를 들어, 3x4 크기의 배열을 초기화하려면 다음과 같이 코드를 작성합니다.
```python
array = [[0 for x in range(4)] for y in range(3)]
```
위 코드에서 `array`는 3x4 크기의 2차원 배열입니다.
또한, 배열의 각 요소를 원하는 값으로 초기화할 수도 있습니다. 예를 들어, 다음과 같이 모든 요소를 1로 초기화할 수 있습니다.
```python
array = [[1 for x in range(4)] for y in range(3)]
```
또는 특정한 값을 갖는 요소를 초기화할 수도 있습니다. 예를 들어, 다음 코드는 첫 번째 요소를 10으로, 두 번째 요소를 20으로 초기화합니다.
```python
array = [[10, 20, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
```
이렇게 2차원 배열을 초기화할 때, 반복문을 사용할 필요 없으므로 초기화 속도가 매우 빠릅니다. 이 방법을 사용하여 2차원 배열을 초기화하면 간단하게 코드를 작성할 수 있으므로, Python에서 데이터 처리에 이 방법을 많이 사용합니다.