[Algorithm] sort(), sorted()

kiteB·2021년 10월 20일
0

Algorithm-Python

목록 보기
2/7
post-thumbnail

[ 오늘의 주제는? ]

파이썬을 이용해서 정렬을 해야할 때, sort(), sorted()를 이용해서 쉽게 정렬할 수 있다.
오늘은 이 두 함수의 차이점에 대해 알아보도록 하겠다!


[ sort() ]

Python lists have a built-in list.sort() method that modifies the list in-place
: 파이썬 리스트는 리스트를 제자리에서 수정하는 내장 메서드 list.sort()를 갖는다.

  • 원래 리스트 자체를 수정한다. → 리턴값이 None
  • 리스트에만 적용할 수 있다.
  • 오름차순
data = [6, 2, 3, 9]
data.sort()

print(data)		# [2, 3, 6, 9]
  • 내림차순
data = [6, 2, 3, 9]
data.sort(reverse=True)

print(data)		# [9, 6, 3, 2]

[ sorted() ]

There is also a sorted() built-in function that builds a new sorted list from an iterable.
: iterable로부터 새로운 정렬된 리스트를 만드는 sorted() 내장 함수가 있다.

  • 새로운 정렬된 리스트를 반환하며, 원래 리스트에 영향을 주지 않는다.리턴값이 정렬된 리스트
  • 모든 iterable에 적용할 수 있다.
    • iterable 객체: 반복 가능한 객체
    • Ex) list, dict, set, str, bytes, tuple, range
  • 오름차순
data = [6, 2, 3, 9]
new_data = sorted(data)

print(data)		# [6, 2, 3, 9]
print(new_data)		# [2, 3, 6, 9]
  • 내림차순
data = [6, 2, 3, 9]
new_data = sorted(data, reverse=True)

print(data)		# [6, 2, 3, 9]
print(new_data)		# [9, 6, 3, 2]

→ 원래 리스트는 변하지 않았다!

문자열 정렬

data_str = "yeonju"
new_data = sorted(data_str)

print(''.join(data_str))	# yeonju
print(''.join(new_data))	# ejnouy

→ 문자열은 iterable 객체이므로 sorted를 적용할 수 있다.


[ sort(), sorted() 차이점 ]

  • sort()
    • 리스트에만 적용할 수 있다.
    • 리스트 자체를 수정하며, None이 반환된다.
  • sorted()
    • iterable 객체에 적용할 수 있다.
    • 새롭게 정렬된 리스트를 반환한다.
  • sort()는 리스트의 복사본을 만들 필요가 없어서 sorted()보다 빠르다.

[ 📘 Reference ]

https://docs.python.org/3/howto/sorting.html?highlight=sort
https://wikidocs.net/16068
https://www.acmicpc.net/blog/view/58

profile
🚧 https://coji.tistory.com/ 🏠

0개의 댓글