[Python] 리스트/배열 정렬 함수 ( sort() / sorted() )

2020. 12. 24. 13:47·Language/Python
반응형

Title

 

👀 파이썬의 정렬 함수 ( sort() / sorted() ) 👀
1. list.sort() : 변수 자체를 수정, 함수 반환값 None 값. key 설정 가능, reverse(내림차순) 가능
2. sorted(list) : 반환값 list 새로운 변수에 할당 가능, key 설정 가능, reverse(내림차순) 가능

파이썬의 리스트가 자체적으로 제공하는 정렬 함수에는 2가지 종류가 있습니다. 

이 2가지 종류의 함수에 대하여 각각의 특징을 나열해보도록 하겠습니다.

 

1. Sort() → list.sort()

  • 리스트를 제자리에서 수정 -> 원래 변수가 수정됨.
  • 반환값은 None -> 따라서 arr = list.sort() 실행 시 arr에는 None값 저장됨.
array = [1, 5, 3, 9, 7, 2]
array2 = array.sort()

print("array가 직접 정렬이 됩니다 :",array)
# > array가 직접 정렬이 됩니다 : [1, 2, 3, 5, 7, 9]

print("array2에는 정렬된 array가 들어가지 않습니다 :",array2)
# > array2에는 정렬된 array가 들어가지 않습니다 : None

 

  • parameter 'key'를 통해 원하는 정렬 키를 설정할 수 있음.
array = [['a', 1], ['c', 4], ['b', 3], ['d', 2]]
array.sort(key = lambda x:x[0]) # array.sort() 와 동일.
print("0번째 값(알파벳)에 의하여 정렬된 array : ", array)
# > array :  [['a', 1], ['b', 3], ['c', 4], ['d', 2]]

array = [['a', 1], ['c', 4], ['b', 3], ['d', 2]]
array.sort(key = lambda x:x[1])
print("1번째 값(숫자)에 의하여 정렬된 array : ", array)
# > array :  [['a', 1], ['d', 2], ['b', 3], ['c', 4]]

 

  • 2차원의 경우, sort() 그냥 사용시 첫 번째 키 값이 동일하면 자동으로 그 다음 키 값에 따라 정렬
array = [['a', 1], ['b', 4], ['b', 3]]
array.sort()
print("알파벳 b를 잘 보세요 :", array)
# > 알파벳 b를 잘 보세요 : [['a', 1], ['b', 3], ['b', 4]]

 

  • parameter 'reverse=True'를 통해 내림차순으로 정렬할 수 있음. (오름차순 역순이므로 내림차순이 됨)
array = [1, 5, 3, 9, 7, 2]
array.sort(reverse=True)
print("정렬 후 역순(내림차순) : ", array)
# > 정렬 후 역순(내림차순) :  [9, 7, 5, 3, 2, 1]

 

2. Sorted() → sorted(list)

  • 반환값이 배열값: 변수에 저장 가능! 원래 변수는 수정되지 않음.
array = [1, 5, 3, 9, 7, 2]
array2 = sorted(array)

print("array는 정렬이 되지 않습니다 :",array)
# > array는 정렬이 되지 않습니다 : [1, 5, 3, 9, 7, 2]

print("array2에는 정렬된 array가 들어갑니다 :",array2)
# > array2에는 정렬된 array가 들어갑니다 : [1, 2, 3, 5, 7, 9]

 

  • Sort와 마찬가지로 key 값, reverse 값 설정 가능
array = [['a', 1], ['c', 4], ['b', 3], ['d', 2]]

array2 = sorted(array, key = lambda x:x[1])
print("1번째 값을 key 값으로 정렬 :", array2)
# > 1번째 값을 key 값으로 정렬 : [['a', 1], ['d', 2], ['b', 3], ['c', 4]]

array3 = sorted(array, reverse = True)
print("내림차순으로 정렬 :", array3)
# > 내림차순으로 정렬 : [['d', 2], ['c', 4], ['b', 3], ['a', 1]]

 

 


 

sort()와 sorted() 모두 기본 정렬은 오름차순으로 정렬되며, 'reverse = True' 사용 시 내림차순으로 정렬이 됩니다.

두 함수의 핵심은, sort() 함수는 배열 자체를 정렬하므로 전역변수를 클래스 내부에서 정렬해서 저장할 때 유용할 것 같고, sorted() 함수는 배열을 복사해서 정렬하여 새로운 변수로 뽑아낼 수 있으므로 저장된 배열 변수를 가져다가 연산을 진행한다던가 할 때 유용하게 사용할 수 있을 것 같습니다😊

 

 

 

 

 

<참고>

docs.python.org/ko/3/howto/sorting.html

docs.python.org/ko/3/library/functions.html#sorted

docs.python.org/ko/3/library/stdtypes.html#list.sort

반응형

'Language > Python' 카테고리의 다른 글

[Python] upper(), lower() 함수 / 파이썬 문자열 대문자 소문자 변환  (0) 2021.01.12
[Python] islower(), isupper() 함수 / 파이썬 문자열 대문자 소문자 체크  (0) 2021.01.12
[Python] isalpha(), isdigit() 함수 / 문자열 체크하기  (0) 2021.01.12
[Python] 파이썬 배열 원소 세는 방법 count() / collections.Counter()  (0) 2020.12.27
[Python] 리스트/배열 역순 정렬 ( reverse() / reversed() )  (0) 2020.12.24
'Language/Python' 카테고리의 다른 글
  • [Python] islower(), isupper() 함수 / 파이썬 문자열 대문자 소문자 체크
  • [Python] isalpha(), isdigit() 함수 / 문자열 체크하기
  • [Python] 파이썬 배열 원소 세는 방법 count() / collections.Counter()
  • [Python] 리스트/배열 역순 정렬 ( reverse() / reversed() )
개발하는 사막여우
개발하는 사막여우
개발개발 주저리주저리
    반응형
  • 개발하는 사막여우
    개발하는 사막여우
    개발하는 사막여우
  • 전체
    오늘
    어제
    • All (311)
      • Books (13)
        • 읽기 좋은 코드가 좋은 코드다 (13)
      • Study (6)
        • Blockchain (3)
        • Algorithm (3)
      • Baekjoon (36)
      • Programmers (166)
      • LeetCode (15)
      • Open Source (1)
        • Youtube Popout Player (1)
      • Language (32)
        • Python (9)
        • JS (8)
        • Java (5)
        • HTML (6)
        • CSS (4)
      • Library & Framework (15)
        • React.js (15)
      • IDE (2)
        • IntelliJ (2)
      • Airdrop (9)
      • Tistory (2)
      • etc.. (7)
        • Cozubi (6)
        • lol-chess (0)
  • 블로그 메뉴

    • Github
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    Java
    알고리즘문제풀이
    코인줍줍
    읽기 좋은 코드가 좋은 코드다
    카카오 코딩테스트
    Cozubi
    2018 KAKAO BLIND RECRUITMENT
    프로그래머스 위클리 챌린지
    Python
    카카오 공채
    카카오 알고리즘 문제
    클린 코드 작성법
    백준
    신규 코인 에어드랍
    파이썬
    코주비
    programmers
    코딩테스트연습
    클린 코드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
개발하는 사막여우
[Python] 리스트/배열 정렬 함수 ( sort() / sorted() )
상단으로

티스토리툴바