정렬시 key 를 사용하여 원하는 기준으로 정렬할 수 있음
1) 절대값으로 정렬
a = [-2, -5, 3, 1, -10]
a.sort(key=abs)
print(a)
a = [-2, -5, 3, 1, -10]
b = sorted(a, key=abs)
print(b)
- 실행결과
[1, -2, 3, -5, -10]
2) lambda 를 사용하여 정렬
a = [-2, -5, 3, 1, -10]
a.sort(key=lambda x: -(x*2))
print(a)
a = [-2, -5, 3, 1, -10]
b = sorted(a,key=lambda x: -(x*2))
print(b)
각 값들이 -(x*2) 가 적용되어 [4, 10, -6, -2, 20] 로 되고 다시 오름차순으로 정렬되어 아래와 같이 실행결과가 나타남
- 실행결과
[3, 1, -2, -5, -10]
3) 사용자 정의 객체 리스트를 속성에 따라 정렬하기
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
people = [Person("Alice", 25), Person("Bob", 30), Person("Charlie", 20)]
sorted_people = sorted(people, key=lambda x: x.age)
print([person.name for person in sorted_people])
key 매개변수에 lambda 함수를 사용하여 각 요소를 어떻게 비교할지를 정의
- 실행결과
['Charlie', 'Alice', 'Bob']
'IT > 파이썬 문법' 카테고리의 다른 글
파이썬 리스트 복사 얕은 복사 깊은 복사 예제 및 설명 (2) | 2024.07.08 |
---|---|
파이썬 리스트 슬라이스 (slice) 리스트 전체 복사 설명 예제 코드 (1) | 2024.07.08 |
파이썬 sort, sorted 함수 차이 (0) | 2024.05.08 |
파이썬 zip 함수 사용하기 (0) | 2024.05.08 |
파이썬 map 함수 (0) | 2024.05.08 |