2013-04-22 4 views
3

나는 this postthis post을 비롯한 여러 다른 것들을 보았지만, 내 질문에 대한 답을 찾지 못했고 그것을 이해할 수도 없다.파이썬의리스트에서 값으로 사전 정렬 키

나는 사전 목록을 가지고 있습니다. 나는 목록에서 특정 항목을 기준으로 정렬 된 키 (내림차순/역)의 목록을 반환 할

Dict = {'a':[1,2,3,4], 'b':[9,8,7,6], 'c':[8,5,3,2]} 

: 같은 예를 들어 같습니다. 예를 들어, 각 목록의 네 번째 항목을 기준으로 a, b, c를 정렬하려고합니다.

[6,4,2]으로 정렬 된 sorted_keys = ['b','a','c'] 목록을 반환해야합니다.

의미가 있습니까? 도와주세요 ... 고마워요!

답변

9

공급 장치 A key 기능, lambda 가장 쉬운 방법이며, 일종의 반전 :

sorted(Dict.keys(), key=lambda k: Dict[k][3], reverse=True) 

의 핵심 기능은에 의해 을 정렬 할 것을 sorted를 알려줍니다; 지정된 키의 값의 4 번째의 항목

데모 :

>>> sorted(Dict.keys(), key=lambda k: Dict[k][3], reverse=True) 
['b', 'a', 'c'] 
+0

바하 내가 너무 느렸다 : P –

+0

감사합니다! 잘 뻗어있다! – mcfly

+0

@MartijnPieters +1 좋은 해결책은'.keys()'가 필요 없다는 것입니다. – jamylak