728x90
2차원 배열 정렬
lst = [[3, 'B'], [0, 'D'], [1, 'A'], [2, 'C']]
[sorted 사용]
: 원본 리스트는 그대로 유지한 채, 정렬된 리스트를 반환
# 1
print(sorted(lst))
# 2
print(sorted(lst, key=lambda x : x[0]))
# 3
print(sorted(lst, key=lambda x : x[1]))
# [[0, 'D'], [1, 'A'], [2, 'C'], [3, 'B']]
# [[0, 'D'], [1, 'A'], [2, 'C'], [3, 'B']]
# [[1, 'A'], [3, 'B'], [2, 'C'], [0, 'D']]
- 기본적으로 key값을 설정하지 않고 sorted를 사용하면 리스트의 첫 번째 요소를 기준으로 정렬을 한다.
- 좀 더 명시적으로 코드를 적자면 2번과 같은 형태 (1번과 똑같은 리스트를 반환한다.)
- 두 번째 요소를 기준으로 정렬하고 싶다면 x[1]과 같이 key 값을 설정해주면 된다.
[sort() 사용]
: 원본 리스트를 정렬시키고 None값을 반환
# 1
lst.sort()
print(lst)
# 2
lst.sort(key=lambda x : x[0])
print(lst)
# 3
lst.sort(key=lambda x : x[1])
print(lst)
# [[0, 'D'], [1, 'A'], [2, 'C'], [3, 'B']]
# [[0, 'D'], [1, 'A'], [2, 'C'], [3, 'B']]
# [[1, 'A'], [3, 'B'], [2, 'C'], [0, 'D']]
- sort() 역시 key값을 설정하지 않고 사용하면 첫 번째 요소를 기준으로 정렬한다.
- 명시적으로 key값을 지정해주면 2번과 같은 형태 (1번과 똑같이 정렬된다.)
- 두 번째 요소를 기준으로 정렬하고 싶다면 sorted와 같이 key 값을 설정해주면 된다.
딕셔너리 정렬
dictionary = {'B' : 3, 'D' : 0, 'A' : 1, 'C' : 2}
딕셔너리 정렬에는 sorted를 사용한다.
[key를 기준으로 정렬]
print(sorted(dictionary.items()))
print(sorted(dictionary.items(), key=lambda x : x[0]))
# [('A', 1), ('B', 3), ('C', 2), ('D', 0)]
# [('A', 1), ('B', 3), ('C', 2), ('D', 0)]
- 딕셔너리에서도 items()를 사용해서 딕셔너리의 key와 value를 튜플 형태로 가져온 다음, 2차원 배열과 같이 key 값을 설정해서 정렬할 수 있다.
- 0번째 요소가 딕셔너리의 key값이 된다.
- key값을 따로 지정하지 않으면 0번째 요소인 딕셔너리의 key값을 기준으로 정렬한다.
[value를 기준으로 정렬]
print(sorted(dictionary.items(), key=lambda x : x[1]))
- 1번째 요소가 딕셔너리의 value값이 된다.
- key값을 value로 설정해주면 value 기준으로 정렬이 된다.
728x90
'PROGRAMMING > PYTHON' 카테고리의 다른 글
[Python] 리스트 관련 함수 (0) | 2022.01.10 |
---|---|
[Python] 문자열 관련 함수 (0) | 2022.01.10 |
[Python] 진수 변환 (0) | 2021.10.03 |
[Python] 비트 연산자 (0) | 2021.08.22 |
[Python] 2차원 배열 (0) | 2021.08.22 |
댓글