컴퓨터는 잘못이 없다..

[Python]프로그래머스 강의_파이썬을 파이썬 답게 파트4. Iterable 다루기_원본을 유지한채 정렬된 리스트 구하기 - sorted 본문

공부/Python

[Python]프로그래머스 강의_파이썬을 파이썬 답게 파트4. Iterable 다루기_원본을 유지한채 정렬된 리스트 구하기 - sorted

도토리까꿍v 2021. 5. 7. 11:01
Contents 접기

#강의 링크

파이썬을 파이썬답게 - 원본을 유지한채, 정렬된 리스트 구하기 - sorted | 프로그래머스 (programmers.co.kr)

 

파이썬을 파이썬답게 - 원본을 유지한채, 정렬된 리스트 구하기 - sorted

본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코

programmers.co.kr

#강의 내용 

sort() 함수를 사용하면 리스트의 원소를 정렬할 수 있다. 이때, sort함수는 원본의 멤버 순서를 변경한다.

따라서 원본의 순서는 변경하지 않고, 정렬된 값을 구하려면 sorted함수를 사용해야 한다. 

 

#sort와 sorted 사용 비교

 

┌코드1(sort 사용)

list1 = [3, 2, 1]
list2 = [i for i in list1] # 또는 copy.deepcopy를 사용
list2.sort()

▲코드1 결과

list1=[3,2,1], list2=[1,2,3]

sort로 list1 즉, 원본의 순서는 변경하지 않고 정렬된 값을 구하려면 list2에 deep copy와 sort함수를 이용해야한다. 

 

코드2(sorted사용)

list1 = [3, 2, 1]
list2 = sorted(list1)

▲코드 2 결과

list1=[3,2,1], list2=[1,2,3]

코드 2처럼 sorted를 사용한다면 반복문이나 deepcopy 함수를 사용하지 않아도 새로운 정렬된 리스트를 구할 수 있다. 

 

#추가로 알아두기 

reverse파라미터를 사용하면 내림차순으로 정렬시킬 수 있다. 

 

코드1(sort에서 reverse파라미터 사용)

>>> list1=[5,6,1]
>>> list1.sort(reverse=True)
>>> print(list1)
[6, 5, 1]

 

코드2(sorted에서 reverse파라미터 사용)

>>> list1=[6,5,1]
>>> list2=sorted(list1, reverse=True)
>>> print(list2)
[6, 5, 1]

 

▲코드1과 코드2 모두 reverse=True로 리스트를 내림차순 정렬하였다. 

Comments