개발하는 사막여우
개발하는 사막여우
개발하는 사막여우
전체 방문자
오늘
어제
  • All (310)
    • 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.. (12)
      • Cozubi (6)
      • lol-chess (0)

블로그 메뉴

  • Github

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
개발하는 사막여우

개발하는 사막여우

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

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

2020. 12. 24. 13:47
반응형

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() )
    개발하는 사막여우
    개발하는 사막여우
    개발개발 주저리주저리

    티스토리툴바