딕셔너리 값으로 목록을 정렬하는 방법은 무엇인가요?
특정 키 값으로 딕셔너리 목록을 정렬하는 방법은 무엇인가요? 주어진 것은:
[{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
name으로 정렬하면 다음과 같아야합니다:
[{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]
답변 1
sorted() 함수는 key= 매개변수를 사용합니다.
newlist = sorted(list_to_be_sorted, key=lambda d: d['name'])
대신하여, 함수를 직접 정의하지 않고 operator.itemgetter을(를) 사용할 수 있습니다.
from operator import itemgetter
newlist = sorted(list_to_be_sorted, key=itemgetter('name'))
완전함을 위해 reverse=True 를 내림차순으로 정렬하세요.
newlist = sorted(list_to_be_sorted, key=itemgetter('name'), reverse=True)
답변 2
리스트는 여러 값을 가질 수 있는 데이터 유형입니다. 딕셔너리는 키와 값을 가지며, 딕셔너리의 값을 기준으로 정렬하는 것이 필요한 경우가 있습니다. 파이썬에서는 이를 간단하게 수행할 수 있습니다.
먼저, 리스트를 만들고 딕셔너리를 추가합니다. 이후, lambda 함수를 사용하여 딕셔너리의 특정 값으로 정렬할 수 있습니다. 예를 들어, 딕셔너리의 'age' 값을 사용하여 리스트를 정렬하고 싶다면 다음과 같이 작성할 수 있습니다:
```python
my_list = [
{'name': 'John', 'age': 25},
{'name': 'Jane', 'age': 20},
{'name': 'Bob', 'age': 30}
]
my_list.sort(key=lambda x: x['age'])
```
위 코드에서, lambda 함수는 각 딕셔너리를 입력으로 받고 해당 딕셔너리에서 'age' 값을 반환합니다. 이를 기준으로 리스트를 정렬하며, 결과는 다음과 같습니다:
```python
[{'name': 'Jane', 'age': 20},
{'name': 'John', 'age': 25},
{'name': 'Bob', 'age': 30}]
```
이를 통해 딕셔너리의 값을 기준으로 리스트를 정렬하는 방법을 알아보았습니다. 이는 파이썬에서 많이 사용되는 기능 중 하나이며, 데이터 정렬에 필수적입니다. 따라서 프로그래머라면 이를 잘 활용할 수 있도록 학습해야 합니다.