본문 바로가기
PROGRAMMING/PYTHON

[Python] 2차원 배열, 딕셔너리 정렬

by 안녕나는현서 2021. 10. 8.
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']]
  1. 기본적으로 key값을 설정하지 않고 sorted를 사용하면 리스트의 첫 번째 요소를 기준으로 정렬을 한다.
  2. 좀 더 명시적으로 코드를 적자면 2번과 같은 형태 (1번과 똑같은 리스트를 반환한다.)
  3. 두 번째 요소를 기준으로 정렬하고 싶다면 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']]
  1. sort() 역시 key값을 설정하지 않고 사용하면 첫 번째 요소를 기준으로 정렬한다.
  2. 명시적으로 key값을 지정해주면 2번과 같은 형태 (1번과 똑같이 정렬된다.)
  3. 두 번째 요소를 기준으로 정렬하고 싶다면 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

댓글