파이썬 리스트 정렬 함수

Ddudduu·2023년 8월 30일
0
  • 파이썬에서 리스트를 정렬할때 sort 를 자주 사용하는데, 매번 사용해도 매번 까먹는다. 잘 적어두고 기억해두자!

sort

arr = [1,3, 10, 43, 5]
arr.sort()
print(arr)

[1, 3, 5, 10, 43]

sort() 는 리스트 자체를 오름차순으로 정렬한다.
반환 값이 없음!

sort reverse

arr = [1,3, 10, 43, 5]
arr.sort(reverse= True)
print(arr)

[43, 10, 5, 3, 1]

reverse 옵션을 True 로 설정하면 내림차순 정렬이 된다.
기본적으로는 False 로 설정돼있어 오름차순 임!

sorted

정렬된 리스트를 반환하는 함수이다.

arr = [1,3, 10, 43, 5]
newArr = sorted(arr)
print(newArr)

[1, 3, 5, 10, 43]

key 지정

정렬 기준이 되는 함수를 값으로 넣는다.
sort() sorted() 모두 사용 가넝!

arr = ["aa","happy","abc","hello","python","worldddd"]
newArr = sorted(arr, key = lambda x:x[1])
print(newArr)

['aa', 'happy', 'abc', 'hello', 'worldddd', 'python']

문자열의 두번째 원소로 정렬하고자 한다면, key = lambda x:x[1] 으로 key 를 지정하면 된다.

  • key 값이 여러개라면?
arr = [("tom", 23), ("lenna", 29), ("henry", 18), ("jessie", 25), ("henry", 32)]
arr.sort(key = lambda x:(x[0], -x[1]))
print(arr)

[('henry', 32), ('henry', 18), ('jessie', 25), ('lenna', 29), ('tom', 23)]

tuple 로 이뤄진 배열을 정렬할 때, lambda 식에 tuple 형식으로 식을 작성하면 된다.
- 부호 를 붙여주면, 내림차순으로 정렬할 수 있다.

위의 예제는 이름 - 오름차순, 같은 이름이라면 나이 - 내림차순
으로 정렬된다!

reversed

리스트를 거꾸로 뒤집는 함수이다. iterator 를 반환하기 때문에 리스트 로 변환해주어야, 리스트로 사용할 수 있다.

arr = [1,3, 10, 43, 5]
newArr = reversed(arr)
print(list(newArr))

[5, 43, 10, 3, 1]

정렬하지 않고 고대로 뒤집어 주는 게 특징이다.

reverse

리스트 자체를 거꾸로 뒤집는 함수.

arr = [1,3, 10, 43, 5]
arr.reverse()
print(arr)

[5, 43, 10, 3, 1]

이 함수도 반환값이 없다.

profile
Android

0개의 댓글