sorted()
함수에 대해서 정리를 했었는데 문득, reversed()
함수에 대해서도 궁금해지기 시작했고, reverse()
와의 차이점도 알고 싶었고, sort
와 sorted
도 연관이 있는건가? 하면서 갑자기 정리하고 싶어졌다.
위의 표에서 보면 알 수 있듯이 sort()
는 리스트의 메소드중 하나이고, sorted()
는 내장 함수이다.
sort()
는 리스트 자체를 정렬시킨다.lst = [ i for i in [5,4,3,2,1]]
lst.sort()
print(lst)
------------------------------
[1, 2, 3, 4, 5]
sorted()
는 원본은 변경하지 않으며, 리스트를 반환하지 않고 오름차순으로 iterator
를 반환한다.lst = [ i for i in [5,4,3,2,1]]
print(list(sorted(lst))) # sorted
print(lst) # original
------------------------------
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
reserve()
- a method of list
reverse()
는 리스트 자체를 내림차순으로 정렬시킨다.lst = [ i for i in range(5)]
lst.reverse()
print(lst)
------------------------------
[4, 3, 2, 1, 0]
reversed()
- a built-in function
reversed()
는 원본은 변경하지 않으며, 리스트를 반환하지 않고 내림차순으로 iterator
를 반환한다.lst = [ i for i in range(5)]
print(list(reversed(lst))) # reversed
print(lst) # original
--------------------------------------------
[4, 3, 2, 1, 0]
[0, 1, 2, 3, 4]
완전히 같지는 않지만 슬라이싱을 해서 순서를 뒤집을 수도 있다.
lst = [i for i in range(5)]
print(list(reversed(lst))) # reversed
print(lst[::-1]) # [::-1]
print(lst) # original
-------------------------------------------
[4, 3, 2, 1, 0]
[4, 3, 2, 1, 0]
[0, 1, 2, 3, 4]