2012-12-12 3 views
6

documentation에서 슬라이싱의 예는 더 복잡한 표현식이 아닌 인덱스로 사용되는 정수 리터럴과 변수 만 표시합니다 (예 : myarray[x/3+2:x/2+3:2]). PEP-8도이 경우를 다루지 않습니다. 공백 문자의 일반적인 사용법은 다음과 같습니다. myarray[x/3+2:x/2+3:2], myarray[x/3+2 : x/2+3 : 2] 또는 myarray[x/3+2: x/2+3: 2] (다른 적당한 옵션이없는 것 같습니다)?파이썬에서 표현식 색인을 사용하여 슬라이싱 할 때 권장되는 공백은 무엇입니까?

+4

가 글쎄, 난 보통 내 사업자에 공백이 있고, 나는 복잡한 식을 괄호로 것 :'에서 myArray [(x/3 + 2) :(x/2 + 3) : 2]'. –

+1

PEP8에서는 수학 연산자 주변에 공간을 권장합니다. –

답변

7

슬라이싱 작업에 사용 된 공백을 본 적이 없으므로이를 피하는 편이 잘못 될 것입니다. 다시 말하지만, 성능이 중요하지 않으면 슬라이싱 작업 외부에서 표현을 모두 이동시키는 경향이 있습니다. 결국, 당신의 목표는 쉽게 읽을 수 있습니다 :

lower = x/3 + 2 
upper = x/2 + 3 
myarray[lower:upper:2] 
+1

그리고 만약 * 성능이 중요하다면 대신 Cython을 사용할 것입니다. –

3

나는이 주제에 PEP8의 가장 관련성이 추출물은 믿습니다 목적으로 여기에 제공된

가이드 라인은 코드의 가독성을 개선하기 위해 파이썬 코드의 광범위한 스펙트럼에 걸쳐 일관성을 유지합니다. 이 경우

, 내 개인적인 선택은 아마 아마 스티브 MAYNE의 대답, 또는이 될 것입니다 :

myarray[slice(x/3 + 2, x/2 + 3, 2)] 
관련 문제