파이썬 리스트 정렬
조회수 864회
예를들어 ['level 10', 'level 4', 'level8', 'level9']
가 있을 때 저는
level 10
level 9
level 8
level 4
이렇게 출력하고싶은데 그냥 sort 를 사용하면
level 9
level 8
level 4
level 10
이렇게 되어버립니다.
혹시 어떻게 원하는것처럼 정렬할 수 있는지 아시나요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
>>> l = [ "level %d"%i for i in range(4, 12, 2) ] >>> l ['level 4', 'level 6', 'level 8', 'level 10'] >>> sorted(l) ['level 10', 'level 4', 'level 6', 'level 8'] >>> sorted(l, key=lambda s:int(s[5:])) ['level 4', 'level 6', 'level 8', 'level 10'] >>> f = lambda s: int(s[5:]) >>> f("level 3") 3 >>> f("level 5") 5 >>> f("abcde 7") 7 >>> f("eeeee 11") 11 >>> sorted(l, key=lambda s: int(s[5:]), reverse=True) ['level 10', 'level 8', 'level 6', 'level 4']
댓글 입력