파이썬(python) 리스트 딕셔너리(list dictionary, map) 정렬(sort) :: 개발/일상_Mr.lee

파이썬(python) 리스트 딕셔너리(list dictionary, map) 정렬(sort)

Posted by Mr.mandu.
2020. 7. 2. 18:25 개발/python, 딥러닝

안녕하세요.

이번 포스팅은 파이썬 자료형 중 

리스트(List), 딕셔너리(dictionary)의 정렬에 대해 포스팅하겠습니다.

리스트와 딕셔너리의 자료형에 대해 궁금하신분은 

따로 검색 하시길 권장드립니다.


저는 자바를 많이 해서그런지 list 안에 map 이 있는 형태에서 

map의 key값을 기준으로 정렬을 원했습니다.

파이썬에서는 map이 딕셔너리(dictionary) 라고 보시면 됩니다.


일반적인 리스트 정렬

그럼 소스를 통해 알아보겠습니다.

# list sort
list_sort = [1,5,3,2,4,5,6,7,9,10,13,12]
print(list_sort)

일반적인 List를 선언하고 자료를 입력 하였습니다.

순서를 뒤죽박죽 넣었기때문에 당연히 정렬이 안된 상태 입니다.

여기에 .sort() 함수를 사용해 정렬해 보겠습니다.

list_sort.sort()
print(list_sort)

두 소스를 출력한 결과 입니다.


리스트 안에 딕셔너리있는 형태의 정렬

기본적으로 딕셔너리는 다음과 같은 형태로 선언합니다.

seq_map = {"order_seq" : 1, "seq" : 1}

저는 이러한 딕셔너리를 리스트안에 넣으려고 합니다.

# list dictionary(map) sort
seq_map = {"order_seq" : 1, "seq" : 1}
list_sort.append(seq_map)
seq_map = {"order_seq" : 10, "seq" : 9}
list_sort.append(seq_map)
seq_map = {"order_seq" : 3, "seq" : 7}
list_sort.append(seq_map)
seq_map = {"order_seq" : 2, "seq" : 2}
list_sort.append(seq_map)
seq_map = {"order_seq" : 7, "seq" : 5}
list_sort.append(seq_map)
seq_map = {"order_seq" : 5, "seq" : 3}
list_sort.append(seq_map)

print(list_sort)

이번에도 뒤죽박죽으로 데이터를 입력하였습니다.

sorted 함수를 사용하여 정렬하겠습니다.

seq_list_sort = sorted(list_sort, key=(lambda x : int(x['order_seq'])))



저는 딕셔너리의 'order_seq'에 대해 정렬을 하였습니다.

저는 숫자형태의 정렬을 원했기 때문에 int()로 묶어 주었습니다.

문자의 정렬은 그냥 사용하시면 됩니다.


다음은 출력 결과 입니다.

그림이 작아 잘 안보이지만

order_seq의 값으로 정렬되었습니다.


모두 좋은하루 보내세요.