리스트변수.sort()
- 원본을 변형시켜 정렬한다.
- 정렬 기준은 문자열은 알파벳, 가나다순이고 숫자는 오름차순이 기본값이다.
arr = [5, 1, 3, 2, 4] arr.sort() print(arr) >> [1, 2, 3, 4, 5]
sorted()
- 정렬된 결과를 반환하고, 원형을 변형시키지 않는다.
- 괄호 안에 반복 가능한 iterable 자료형을 입력하여 사용한다.
ex. list, tuple, str, dict- 정렬 기준은 sort와 같다.
arr = [5, 1, 3, 2, 4] print(sorted(arr)) >> [1, 2, 3, 4, 5]
parameter (key와 reverse)
- sort, sorted 모두
key
와reverse
매개변수를 갖고 있다.- reverse가 True면 내림차순, False면 오름차순이다.
- key는 정렬의 기준을 정하는 매개변수이다.
arr = [5, 1, 3, 2, 4] num_list.sort(reverse=True) print(num_list) >> [5, 4, 3, 2, 1]
str_list = ['좋은하루','good_morning','굿모닝','niceday'] ## 문자열의 두번째 element를 기준으로 정렬 print(sorted(str_list, key=lambda x : x[1])) >> ['niceday', 'good_morning', '굿모닝', '좋은하루'] ## 문자열의 길이를 기준으로 정렬 str_list.sort(key=len) print(str_list) >> ['굿모닝', '좋은하루', 'niceday', 'good_morning']
- lambda
✔️ 람다는 함수 표현식이다.
✔️ 밑에 함수를 다음과 같이 람다식으로 나타내어 사용할 수 있다.def foo(x, y): return x+y
lambda x, y: x+y
✔️ 가끔 람다가 아래와 같이 사용이 되는데,
arr = ['cde', 'cfc', 'abc'] sorted(arr) >> ['abc', 'cde', 'cfc'] sorted(arr, key=lambda s: (s[0], s[-1])) >> ['abc', 'cfc', 'cde']
✔️ 이는 s[0] 값을 기준으로 오름차순 정렬을 하되, s[0] 값이 같을 때 s[-1] 값을 기준으로 다시 오름차순 정렬을 하겠다는 표현 방법이다!