All about

sorted 함수는 파이썬에서 리스트, 튜플, 문자열, 딕셔너리 등의 iterable 객체를 정렬하는 사용됩니다. 함수는 정렬된 새로운 리스트를 반환하며, 원본 데이터를 변경하지 않습니다. sorted 함수의 기본 사용법은 다음과 같습니다.

sorted(iterable, key=None, reverse=False)

 

iterable: 정렬하려는 iterable 객체를 나타냅니다 (리스트, 튜플, 문자열, 딕셔너리 등).

key (선택적): 정렬 기준을 제공하는 함수입니다. 기본값은 None이며, 이 경우에는 요소 자체의 값을 기준으로 정렬됩니다.

reverse (선택적): 기본값은 False이며, True로 설정하면 내림차순으로 정렬됩니다.

다음은 간단한 예제를 통해 sorted 함수의 사용법을 보여줍니다.

# 숫자 리스트를 정렬
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 출력: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

# 문자열을 정렬
text = "python"
sorted_text = sorted(text)
print(sorted_text)  # 출력: ['h', 'n', 'o', 'p', 't', 'y']

# 내림차순으로 정렬
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)  # 출력: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

 

key 매개변수를 사용하여 정렬 기준을 지정할 수도 있습니다. 경우에는 정렬에 사용될 값을 반환하는 함수를 제공합니다. 예를 들어, 절대값을 기준으로 정렬하는 경우

numbers = [-5, 3, -1, 8, -2, 7]
sorted_numbers_abs = sorted(numbers, key=abs)
print(sorted_numbers_abs)  # 출력: [-1, -2, 3, -5, 7, 8]

 

딕셔너리의 경우

# 딕셔너리를 키를 기준으로 정렬
my_dict = {'apple': 3, 'banana': 1, 'orange': 5, 'grape': 2}
sorted_dict_keys = dict(sorted(my_dict.items()))
print(sorted_dict_keys)
# 결과: {'apple': 3, 'banana': 1, 'grape': 2, 'orange': 5}

# 딕셔너리를 값으로 기준으로 정렬
sorted_dict_values = dict(sorted(my_dict.items(), key=lambda item: item[1]))
print(sorted_dict_values)
# 결과: {'banana': 1, 'grape': 2, 'apple': 3, 'orange': 5}

 

번째 예제에서는 sorted 함수를 사용하여 딕셔너리를 키를 기준으로 정렬합니다. 번째 예제에서는 key 매개변수를 람다 함수와 함께 사용하여 값을 기준으로 정렬합니다.

 

오브젝트 속성값의 경우

# 오브젝트의 속성을 기준으로 정렬
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# Person 객체 리스트 생성
people = [Person('Alice', 30), Person('Bob', 25), Person('Charlie', 35)]

# 'age' 속성을 기준으로 객체 리스트 정렬
sorted_people = sorted(people, key=lambda person: person.age)
for person in sorted_people:
    print(f"{person.name}: {person.age}세")
# 결과:
# Bob: 25세
# Alice: 30세
# Charlie: 35세

 

예제에서는 'age' 속성을 기준으로 Person 객체 리스트를 정렬하기 위해 sorted 함수를 사용합니다. key 매개변수는 'age' 속성을 비교하기 위한 람다 함수와 함께 활용됩니다.

 

리스트 안에 딕셔너리가 있는 경우

# 리스트 안에 딕셔너리가 있는 경우
people_list = [
    {'name': 'Alice', 'age': 30, 'city': 'New York'},
    {'name': 'Bob', 'age': 25, 'city': 'San Francisco'},
    {'name': 'Charlie', 'age': 35, 'city': 'Los Angeles'}
]

# 'age'를 기준으로 딕셔너리 정렬
sorted_people = sorted(people_list, key=lambda person: person['age'])
for person in sorted_people:
    print(f"Name: {person['name']}, Age: {person['age']}, City: {person['city']}")

 

이러한 방식으로 sorted 함수를 활용하여 다양한 데이터를 정렬할 있습니다.

 

참조. https://docs.python.org/ko/3/howto/sorting.html

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading