2016-08-04 9 views

답변

3

는 그냥 다른 이해를 사용하고 압축을 풉니 다 : [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)] 

하는 것으로.

+0

목록이 실제로 빌드되지 않도록 생성기를 사용하는 것이 어떻습니까? 'a, b, c = (xrange (a * b * c) in _ xrange (3)) ' – Netwave

+0

@DanielSanchez - 우리는 그렇게 할 수있었습니다. 그러나 성능상의 이점을 확인하려면 한 줄로 여러 독립 변수에 압축을 풀어야하는 것보다 많은 목록을 작성해야합니다. 어쨌든 참조를 저장하기 만하면됩니다. – TigerhawkT3

+0

조금 더 설명해 주시겠습니까? 다른 목록이 들어있는 목록을 작성하고 있지만 목록을 사용하지는 마십시오. 생성기를 사용하면 해당 목록을 제거 할 수 있습니다. 내가 틀렸거나 뭔가 빠졌습니까? 감사!! – Netwave

0

당신 명시된 의도에서가 아닌 '한 줄의 요구 사항을 보면 :

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는 특성 이었기 때문에 그것들을 읽는 것은 부작용이있었습니다. 최적화 프로그램이 어떻게 동적 유형의 언어로이 사실을 알 수 있습니까?