2012-11-10 2 views
1

int 또는 float 또는 둘다 알 수없는 값 목록을 오름차순으로 정렬하려고합니다. 즉 [2, -1,1.0]은 [-1,1.0,2]가됩니다. 불행히도 sorted() 함수는 절대 값으로 내림차순으로 정렬하는 것처럼 보이지 않으므로 작동하지 않는 것 같습니다. 어떤 아이디어?int 및 float 목록을 음수 및 양수 값으로 정렬 하시겠습니까?

+0

['sorted ([2, -1,1.0])'은'[-1, 1.0, 2]'] (http://ideone.com/j0937A)를 산출합니다. 귀하의 질문은 무엇인가? – Johnsyweb

답변

1

동일한 문제가있었습니다. 답 : 파이썬은 숫자를 문자열로 가지고 있다면 숫자를 절대 값으로 정렬합니다. 따라서 키로 int() 또는 float() 인수를 포함해야합니다. 내 작업의 구문이었다

데이터 = 분류 (데이터, 키 = 람다 X : 플로트 (X [0]))

은 ... 람다 X 부분은 정렬 할 일을 출력하는 기능을 제공합니다 으로. 그래서 그것은 내리스트에서 한 행을 차지하고, float 0 번째 엘레멘트를 찾고, 그 엘레멘트에 의해 정렬됩니다.

+0

답변을 확장하려면 '2'와 '2'의 차이는 하나는 정수이고 다른 하나는 문자열이라는 것입니다. 문자열이 숫자를 포함하고 있다는 사실은 문자열이 사전처럼 사전 적으로 정렬되기 때문에 정렬 방식을 변경하지 않으므로 '-2'< '-5 '' (''- '=='- ' '및''2 '<'5''). 반면에 정수는 값순으로 정렬됩니다. – Blender

관련 문제