a = 2
b = 3
c = 4
x = y = z = [0 for i in xrange(a*b*c)]
여러리스트를 초기화 (I는 각리스트 초기화에 A, B 및 C를 곱하지 않기 때문에), 0의 별도 목록으로. 위의 경우 x가 업데이트되면 y와 z도 같은 변경 사항으로 동시에 업데이트됩니다.는 Y, Z 1 행</strong>에 <strong>초기화 될 수 있고, X하는 방법 있는가 파이썬
a = 2
b = 3
c = 4
x = y = z = [0 for i in xrange(a*b*c)]
여러리스트를 초기화 (I는 각리스트 초기화에 A, B 및 C를 곱하지 않기 때문에), 0의 별도 목록으로. 위의 경우 x가 업데이트되면 y와 z도 같은 변경 사항으로 동시에 업데이트됩니다.는 Y, Z 1 행</strong>에 <strong>초기화 될 수 있고, X하는 방법 있는가 파이썬
는 그냥 다른 이해를 사용하고 압축을 풉니 다 : [0 for i in xrange(a*b*c)]
이 [0] * a*b*c
간단한에 해당
x, y, z = [[0 for i in xrange(a*b*c)] for _ in xrange(3)]
하는 것으로.
당신 명시된 의도에서가 아닌 '한 줄의 요구 사항을 보면 :
a = 2
b = 3
c = 4
x = [0 for i in xrange(a*b*c)]
y = x [:]
z = x [:]
확실하지 최적화 알고리즘은 반복 곱셈을 피할 수있을만큼 영리하다 :
x, y, z = [[0 for i in xrange(a*b*c)] for _ in xrange(3)]
A, B를 가정 , 그리고 c는 특성 이었기 때문에 그것들을 읽는 것은 부작용이있었습니다. 최적화 프로그램이 어떻게 동적 유형의 언어로이 사실을 알 수 있습니까?
목록이 실제로 빌드되지 않도록 생성기를 사용하는 것이 어떻습니까? 'a, b, c = (xrange (a * b * c) in _ xrange (3)) ' – Netwave
@DanielSanchez - 우리는 그렇게 할 수있었습니다. 그러나 성능상의 이점을 확인하려면 한 줄로 여러 독립 변수에 압축을 풀어야하는 것보다 많은 목록을 작성해야합니다. 어쨌든 참조를 저장하기 만하면됩니다. – TigerhawkT3
조금 더 설명해 주시겠습니까? 다른 목록이 들어있는 목록을 작성하고 있지만 목록을 사용하지는 마십시오. 생성기를 사용하면 해당 목록을 제거 할 수 있습니다. 내가 틀렸거나 뭔가 빠졌습니까? 감사!! – Netwave