파이썬 리스트 정렬

조회수 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']
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)