Python sort와 sorted 차이

YangJiWon·2020년 6월 21일
1

python

목록 보기
3/12

python sort와 sorted의 차이

  • sorted()는 새로운 정렬된 목록을 반환하며, 원래 목록은 영향을 받지 않습니다.

  • sorted() 메서드

      sorted([5, 2, 3, 1, 4])
      [1, 2, 3, 4, 5]
      a = [5, 2, 3, 1, 4]
  • sort() 메서드

      a.sort()
      a
      [1, 2, 3, 4, 5]
  • list.sort()은 list을 그 자리에서 정렬하고 목록 인덱스를 변경하고 None을 반환합니다.(모든 내부 작업은 동일).

  • sorted()은 list뿐만 아니라 반복 가능한 모든 작업에 적용할 수 있습니다.

  • 문자열, 튜플, 딕셔너리, 제너레이터 등 모든 요소가 포함된 반복 가능한 객체를 정렬하여 반환합니다.

  • 따라서 list를 변경하려면 list.sort()를 사용하고, 새로운 정렬된 객체를 원하면 sorted()를 사용하면 됩니다.

  • list의 경우에 list.sort()는 복사본을 만들 필요가 없으므로 sorted()보다 빠릅니다. 다른 이터레이터의 경우 선택의 여지가 없습니다. (sorted만 사용할 수 있기 때문)

  • 파이썬 3 timeit을 활용한 속도 차이

      >>> timeit.repeat("next(shuffled_iter).sort()", setup=setup, number = 1000)
      [2.797430992126465, 2.796825885772705, 2.7744789123535156]
      >>> timeit.repeat("sorted(next(shuffled_iter))", setup=setup, number = 1000)
      [2.675589084625244, 2.8019039630889893, 2.849375009536743]
      

출처

https://docs.python.org/ko/3/howto/sorting.html
https://www.it-swarm.dev/ko/python/%60sorted-list%60%EC%99%80%60listsort-%60%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C/1044590754/

profile
데이터데이터데이터!!

0개의 댓글