반응형
다음과 같이 사용하기 위해 Python (2.7)에서 3D 배열을 만들고 싶습니다.
distance[i][j][k]
그리고 배열의 크기는 내가 가지고있는 변수의 크기 여야합니다. (n n n)
나는 사용해 보았다 :
distance = [[[]*n]*n]
그러나 그것은 작동하지 않는 것 같습니다.
기본 라이브러리 만 사용할 수 있으며 곱하는 방법 (즉, [[0] * n] * n
)은 동일한 포인터에 연결되어 있고 모든 값이 필요하기 때문에 작동하지 않습니다. 개별적으로
해결 방법
>>> import pprint
>>> n = 3
>>> distance = [[[0 for k in xrange(n)] for j in xrange(n)] for i in xrange(n)]
>>> pprint.pprint(distance)
[[[0, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]]
>>> distance[0][1]
[0, 0, 0]
>>> distance[0][1][2]
0
시도한 것과 비슷한 문으로 데이터 구조를 생성 할 수 있었지만 내부 목록이 참조로 복사되기 때문에 부작용이 있었을 것입니다.
>>> distance=[[[0]*n]*n]*n
>>> pprint.pprint(distance)
[[[0, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]]
>>> distance[0][0][0] = 1
>>> pprint.pprint(distance)
[[[1, 0, 0], [1, 0, 0], [1, 0, 0]],
[[1, 0, 0], [1, 0, 0], [1, 0, 0]],
[[1, 0, 0], [1, 0, 0], [1, 0, 0]]]
참조 페이지 https://stackoverflow.com/questions/10668341
반응형
'파이썬' 카테고리의 다른 글
파이썬은 재귀를 사용하지 않고 숫자 집합을 제외하는 난수를 생성 할 수 있습니까? (0) | 2021.02.16 |
---|---|
파이썬 한 줄로 목록에있는 항목이 다른 목록에 있는지 확인 하시겠습니까? (0) | 2021.02.16 |
파이썬 URL에서 최상위 도메인 이름 (TLD)을 추출하는 방법 (0) | 2021.02.16 |
파이썬 Paramiko "알 수없는 서버" (0) | 2021.02.15 |
파이썬 빈 줄을 제외한 Python으로 텍스트 파일의 줄 수 계산 (0) | 2021.02.15 |
댓글