1 분 소요

이 글을 참고했다.

차이점

  • sort() -> 기존의 리스트 변경
  • sorted() -> 정렬된 새로운 리스트 반환

sort()

sort()를 이용하면 리스트 자체를 변경해 버린다.

lst = [6, 2, 7, 4]
lst.sort()
print(lst) # [2, 4, 6, 7]

오름차순 정렬과 내림차순 정렬

lst = [6, 2, 7, 4]
lst.sort(reverse = True)
print(lst) # [7, 6, 4, 2]

sorted()

sorted()는 정렬된 새로운 리스트를 반환한다.

lst = [6, 2, 7, 4]
new_lst = sorted(lst)
print(lst) # [6, 2, 7, 4]
print(new_lst) # [2, 4, 6, 7]

dictionary 정렬

sort()는 리스트만을 위한 메소드인 반면, sorted()는 어떤 이터러블 객체도 받을 수 있다.
예를 들어서 다음과 같은 딕셔너리 객체도 받을 수 있다.

dic = {
  3: 'D', 2: 'B', 5: 'B', 4: 'E', 1: 'A'
}
new_lst = sorted(dic)

print(dic) # {3: 'D', 2: 'B', 5: 'B', 4: 'E', 1: 'A'}
print(new_lst) # [1, 2, 3, 4, 5]

key 매개변수

객체의 데이터 중에서 특정한 데이터를 기준으로 정렬하기 위해 key 매개변수로 정렬을 하기 전에 각 요소에 대하여 적용되는 함수를 지정할 수 있다.

students = [
  ('홍길동', 3.9, 2016303),
  ('김철수', 3.0, 2016302),
  ('최자영', 4.3, 2016301),
]
new_stud = sorted(students, key=lambda x: x[2])

print(new_stud) # [('최자영', 4.3, 2016301), ('김철수', 3.0, 2016302), ('홍길동', 3.9, 2016303)]

lambda는 람다식을 나타낸 것으로 정렬을 하기 전에 호출되는 함수를 나타낸 것으로 x 요소를 받아서 x[2]를 반환한다.
즉 정렬의 기준이 학생들의 학번이 되는 것이다.

오름차순 정렬과 내림차순 정렬

lst = [6, 2, 7, 4]
new_lst = sorted(lst, reverse = True)
print(new_lst) # [7, 6, 4, 2]


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기

태그:

카테고리:

업데이트: