파이썬 숫자 정렬 간단한 질문 드려요. 맨 앞자리 수 기준으로 정렬하기.

조회수 3832회

1부터 100까지 숫자가 섞여있을 때
sort 쓰면 오름차순으로 정렬되는건 아는데

1, 10, 11, ... , 100, 2, 20, ... , 29, ... , 9, 90, ... , 99

이런식으로 맨 앞자리 수 기준으로 정렬하는 건 어떻게 하나요??

2 답변

  • 좋아요

    2

    싫어요
    채택 취소하기

    문자열로 변환한 뒤에 정렬하세요.

    • 감사합니다!! 최준렬 2020.3.30 16:28
  • values = [1, 2, 9, 10, 11, 20, 29, 90, 99, 100]
    print(sorted(map(str, values))) # ['1', '10', '100', '11', '2', '20', '29', '9', '90', '99']
    

    map함수는 values의 각 원소에 str을 적용시킵니다.

    ---추가---
    @digda님처럼 하는게 더 좋네요 ㅎㅎ

    print(sorted(values, key=str))
    

    이게 훨씬 더 좋네요

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 반환값이 문자열의 리스트이므로 원소를 다시 정수형으로 바꾸려면 int를 또 매핑 시켜야 합니다. doodoji 2020.3.31 20:40
    • sorted(values, key=str) 이 방식도 한 번 고려해 보세요. doodoji 2020.3.31 20:40

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

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

(ಠ_ಠ)
(ಠ‿ಠ)