728x90
파이썬에서
리스트를 정렬할 때 사용하는 sort함수와 sorted함수의 차이점에 대해서 알아보겠습니다.
![](https://blog.kakaocdn.net/dn/GF1xR/btrWQL0U8yC/3Rb8B3KKfQG4NqON8iPB50/img.png)
sort 함수는 리스트명.sort( ) 형식으로 "리스트형의 메소드"이며 리스트 원본값을 직접 수정합니다.
sorted 함수는 sorted( 리스트명 ) 형식으로 "내장 함수"이며 리스트 원본 값은 그대로이고 정렬 값을 반환합니다.
실습을 통해 알아보겠습니다.
sort 함수
a1 = [6, 3, 9]
print('a1:', a1)
a2 = a1.sort() # 원본을 정렬하고 수정합니다(in-place)
print('-----정렬 후-----')
print('a1:', a1)
print('a2:', a2)
출력
a1: [6, 3, 9]
-----정렬 후-----
a1: [3, 6, 9]
a2: None
-----정렬 후-----
a1: [3, 6, 9]
a2: None
특히 sort( ) 함수의 리턴값이 None 이므로 주의합니다. 정렬된 값은 리턴되지 않습니다.
원본 리스트 값이 정렬된 값으로 수정되었습니다.
sorted 함수
sorted()는 각 리스트 요소에 대해 호출할 함수를 지정하는 key매개 변수를 가지고 있다.
b1 = [6, 3, 9]
print('b1:', b1)
b2 = sorted(b1) # 원본은 유지하고 정렬한 새 리스트를 만듭니다
print('-----정렬 후-----')
print('b1:', b1)
print('b2:', b2)
출력
b1: [6, 3, 9]
-----정렬 후-----
b1: [6, 3, 9]
b2: [3, 6, 9]
-----정렬 후-----
b1: [6, 3, 9]
b2: [3, 6, 9]
원본 리스트 b1 값은 유지되고 정렬된 새 리스트는 b2에 저장되었습니다.
# 예시 1
sorted("This is a test string from Andrew".split(), key=str.lower) # 대소 문자를 구분하지 않는 문자열 비교
# 값: ['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
# 예시2
student_tuples =[
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
sorted(student_tuples, key=lambda student: student[2]) # 나이로 정렬
# 값: ('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
728x90
'Python' 카테고리의 다른 글
[python] .isdigit() (0) | 2023.01.22 |
---|---|
[python] 파이썬 람다(lambda) 함수 (0) | 2023.01.21 |
[python] 파이썬 map 함수 (0) | 2023.01.21 |
[python] 파이썬 평균 구하기 4가지 방법 (0) | 2023.01.20 |
[python] 파이썬 sort 리스트 정렬 (오름차순, 내림차순) (0) | 2023.01.20 |