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]