2013-07-02 3 views
2

커서는 데이터베이스의 커서입니다.python : SQL 쿼리에서 반환되는 목록을 정렬하는 방법?

cur.execute(select a,b from table) 
List = cur.fetchall() is like this 
[('a', Decimal('1420.3345345278832575')), ('b', Decimal('380.0000000000000000')),('c', Decimal('382.0000000000000000'))] 

은 내가 노력 즉 소수

튜플에서 두 번째 항목의 기준으로이 결과를 정렬 할 :

sorted(List,key=itemgetter(1)) 

이 목록을 정렬하지 않았다.

제안 사항?

+0

당신이 "이 작동하지 않습니다"에 자세히 설명해 수 있습니까? – TerryA

+0

님이 질문을 편집했습니다 – Peter

+4

왜 검색어를'a, b를 테이블 순서에서 선택 하시겠습니까? ' –

답변

3

sorted 원래 목록을 수정하지 않으면 새 정렬 된 버전 List을 반환합니다.

>>> lis = [('a', Decimal('1420.3345345278832575')), ('b', Decimal('380.0000000000000000')),('c', Decimal('382.0000000000000000'))] 
>>> new_lis = sorted(lis, key=itemgetter(1)) 
>>> new_lis 
[('b', Decimal('380.0000000000000000')), ('c', Decimal('382.0000000000000000')), ('a', Decimal('1420.3345345278832575'))] 

또는 원래 목록 사용 list.sort 정렬 : 당신은 변수에 sorted에서 반환 된 목록을 지정해야합니다

>>> lis = [('a', Decimal('1420.3345345278832575')), ('b', Decimal('380.0000000000000000')),('c', Decimal('382.0000000000000000'))] 
>>> lis.sort(key=itemgetter(1)) 
>>> lis 
[('b', Decimal('380.0000000000000000')), ('c', Decimal('382.0000000000000000')), ('a', Decimal('1420.3345345278832575'))] 
+0

도움을 주신 @Peter Glad. :) 시스템에서 허용하는 경우 언제든지 [답변 수락] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)을 클릭하십시오. –

관련 문제