SeouliteLab

[Python/파이썬] 객체 리스트 정렬하기 본문

프로그래밍

[Python/파이썬] 객체 리스트 정렬하기

Seoulite Lab 2024. 3. 2. 23:17

Python에서는 객체 리스트를 정렬하는 것이 매우 흔한 작업입니다. 이번 글에서는 다양한 방법으로 객체 리스트를 정렬하는 예제를 살펴보겠습니다.

1. 객체의 특정 속성을 기준으로 정렬

가장 일반적인 방법은 객체의 특정 속성을 기준으로 정렬하는 것입니다. 예를 들어, 객체의 'age' 속성을 기준으로 정렬할 수 있습니다.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

people = [Person('John', 30), Person('Jane', 25), Person('Dave', 35)]

# 나이를 기준으로 정렬
sorted_people = sorted(people, key=lambda x: x.age)
for person in sorted_people:
    print(person.name, person.age)

2. 여러 기준으로 정렬

여러 기준으로 정렬할 때는 튜플을 반환하는 람다 함수를 사용하여 정렬할 수 있습니다.

class Person:
    def __init__(self, name, age, height):
        self.name = name
        self.age = age
        self.height = height

people = [Person('John', 30, 175), Person('Jane', 25, 160), Person('Dave', 35, 180)]

# 나이를 기준으로 정렬 후 키를 기준으로 다시 정렬
sorted_people = sorted(people, key=lambda x: (x.age, x.height))
for person in sorted_people:
    print(person.name, person.age, person.height)

3. 내장 함수의 활용

sorted() 함수 외에도 리스트의 sort() 메서드를 사용하여 객체 리스트를 정렬할 수 있습니다.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

people = [Person('John', 30), Person('Jane', 25), Person('Dave', 35)]

# 나이를 기준으로 정렬
people.sort(key=lambda x: x.age)
for person in people:
    print(person.name, person.age)

위의 예제들을 통해 Python에서 객체 리스트를 다양한 방법으로 정렬하는 방법을 알아보았습니다. 정렬할 때는 주어진 조건에 따라 적절한 방법을 선택하여 사용해야 합니다.