2014-01-10 3 views
1

파이썬에서 배열을 시뮬레이트하는 표준 방법은 무엇입니까? 목록 구조는 간격이없는 경우에만 잘 작동하며 값을 계속 추가하는 것처럼 보입니다.파이썬에서 "간격"이있는 배열을 시뮬레이트합니다.

그러나 해시 테이블을 만들고 그 값을 배열에 저장하려고한다고 가정합니다. 해시 함수에 따라 인덱스 1456에 첫 번째 값의 값을 저장해야 할 수도 있습니다. 목록으로 시작하여 1456 개의 'None'인스턴스를 추가 한 다음 값을 고수하겠습니까? 이것은 꽤 절름발이로 보입니다. 그리고 더 좋은 해결 방법이 있는지 궁금합니다.

미리 감사드립니다.

답변

4

합리적인 가능성의 몇 가지가 있습니다.

색인을 키로 사용하는 사전을 사용할 수 있습니다.

당신은 다차원 배열

당신은 표준 라이브러리 어레이 모듈을 사용하고 단지 격차를

을 떠나 아니면

을 제안 당신이 할 수있는 수를 포함하여 유용한 숫자 물건을 많이 추가 NumPy을 사용할 수 있습니다

당신에게 가장 좋은 것은 당신에 의해서만 결정될 수 있습니다.

ADD 지금은 대해 생각

는, SciPy에서하지 NumPy와의 스파 스 배열 -이 모듈은 한 손을 이동 NumPy와 나를 위해 종종 훨씬 더 유용하다.

+0

사전은 좋은 방법입니다 - 나는 펄 코드를 변환하는 데 몇 번 사용했습니다. 단지 sparseness뿐만 아니라 파이썬에서는 배열을 먼저 할당해야하지만 펄에서는 아무것도 할당 할 수 없다는 사실도 고려해야한다. 예 : 파이썬에서'[1, 2]'리스트를 가지고 있다면'l [3] = 1'은 IndexError를 리턴하지만 (4 번째 아이템이 없기 때문에) 펄에서는리스트를 확장합니다. dict도 그렇게 행동합니다. –

관련 문제