2013-08-13 3 views
0

필자는 파이썬이 왜 자기 - 문서화 방식이 아닌 것으로 분류되어 구현되는지에 대한 논리를 이해하려고 노력하고 있습니다.왜 파이썬 정렬 함수는 역순 대신 키워드 순서를 사용합니까?

나는 내림차순으로 목록을 원한다면 내가 좋아하는 뭔가를 할 : 난이 경우 사과

[something[x] for x in sorted(something, order="descending")] 

: 그것은 훨씬 더 자기 문서화 방법처럼 보인다

[something[x] for x in sorted(something, reverse=True)] 

는 것을 정보를 묻는 질문을하기에 적합한 포럼이 아닙니다. stackoverflow 좋은 정보를 얻을 수있는 최고의 장소 중 하나가 될 것으로 나타났습니다. 이 곳이 적절한 곳이 아닌지 질문해야하는 곳으로 안내해주십시오. reverse=True 사용

+0

왜 두 번째 문서가 더 문서화가 잘되어 있다고 생각합니까? – kindall

+3

오름차순/내림차순 사이의 이진 선택이 있다고 가정 할 때 여기 논리 값을 사용하는 것이 논리적 인 것처럼 보입니다. – StephenTG

+0

[Here] (http://www.python.org/about/help/)에서는 버그 수정, 문서 및 다른 것들에 관해 Python 사람들에게 연락 할 수있는 여러 가지 방법을 제공합니다. (아래쪽에 _ _ "기여하고 싶습니까?"_) – keyser

답변

1

말이 : 출력 내림차순 오름차순 또는 되어야 sorted()에서 key= 파라미터는 순서를 정의하기 위해 사용되며, reverse= 파라미터는 해당 순서에 대한 것인지의 여부를 나타내는 -있다 주어진 부울 매개 변수를 사용하여 sorted()의 동작을 제어하는 ​​것이 논리적 인 두 가지 가능성 만 있습니다. 게다가, 단지 두 개의 값만 가능하다는 것을 분명히 말하면, 인터프리터가 오류를 포착하지 않으면 잘못된 값을 전달할 수 없습니다. 제안 된 구문에서 올바른 매개 변수 값의 철자를 잘못 입력하는 것이 쉽습니다.

+1

이것은 대답이 아닙니다. (사실, "무엇이 잘못 되었나요?"라는 말은 꽤 좋은 징후입니다.) – abarnert

+4

@abarnert 그것은 매개 변수가 부울로 선택된 이유에 대한 설명입니다. 그 대답은 저를위한 답입니다. –

+2

설명입니다. 왜 Raymond Hettinger가 생각했는지 모르겠다면 _you_가 부울이어야한다고 생각하는 이유입니다. – abarnert

3

이유는 오류가 발생하지 않는 이유라고 생각합니다.

프로그래머가이 기능을 사용하는 관점에서 볼 때, 예를 들어 "내림차순"에서 "내림차순"으로 잘못 입력 할 수 있습니다.

함수 관리자 관점에서 보면 "오름차순"또는 "내림차순"이외의 값에서 추가 예외를 발생시킬 필요가 없습니다. 옵션이 True 또는 False 인 경우 코드가 손상 될 가능성이 줄어 듭니다.

또한 성능상 약간의 보너스가 있습니다. 부울 비교는 문자열보다 약간 빠릅니다.