Python/Python Programming

[Python] sort, reverse와 sorted, reversed 정렬 차이

Pydole 2018. 4. 14. 01:32

sort : 리스트 자료형의 함수. 리스트 요소를 정렬

 

lst = [ i for i in [5,4,3,2,1]]
lst.sort()
print(lst)

------------------------------

[1, 2, 3, 4, 5]

 

 

reverse : 리스트 자료형의 함수. 리스트 요소를 역순으로 정렬

 

lst = [ i for i in range(5)]
lst.reverse()
print(lst)

------------------------------

[4, 3, 2, 1, 0]

 

 

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]

 

 

random 함수를 이용하여 다른 예를 들어 보면, 

 

import random

Numbers = random.sample([ i for i in range(1,20,1)],6)

print(sorted(Numbers))    # 정렬하여 리턴 하지만 원본은 변경하지 않는다.
print(Numbers)            # 원본은 변경되지 않았음.

Numbers.sort()            # [].sort  원본 자체를 정렬하지만 리턴은 None
print(Numbers)

-----------------------------------------------------------------------

[3, 4, 5, 6, 7, 14]
[14, 6, 5, 7, 4, 3]
[3, 4, 5, 6, 7, 14]

 

 

 

 

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] 

 

 

tuple도 가능

 

tup = (1, 2, 3, 4, 5)

print(tuple(reversed(tup)))
print(tup)

--------------------------------------------
(5, 4, 3, 2, 1)
(1, 2, 3, 4, 5)