Python 딕셔너리를 튜플 리스트로 변환

2021. 9. 7. 15:36dev

딕셔너리 자료형을 리스트로 변환해야할때 다음과 같이 튜플 리스트로 변환시킬 수 있다. 

dict = {'a': 4, 'b': 6, 'c': 1}

# key, value 값 각각 뽑아내기
print(dict.keys())  # dict_keys(['a', 'b', 'c'])
print(dict.values())  # dict_values([4, 6, 1])

# 딕셔너리를 튜플 리스트로 변환
result = list(zip(dict.keys(), dict.values()))
print(result)  # [('a', 4), ('b', 6), ('c', 1)]

# value 기준으로 정렬하기
# 오름차순 정렬
print(sorted(result, key=lambda x: x[1]))  # [('c', 1), ('a', 4), ('b', 6)]
# 내림차순 정렬
print(sorted(result, key=lambda x: -x[1]))  # [('b', 6), ('a', 4), ('c', 1)]

 

만약 리스트내에 원소들에게 인덱스를 부여하고 싶은경우, 내장함수 enumerate()를 사용하면 인덱스와 원소로 이루어진 튜플 리스트를 자동으로 만들어준다. 

# 리스트를 (인덱스, 원소)로 이루어진 튜플로 변환 
arr = ['a', 'b', 'c']
print(list(enumerate(arr)))  # [(0, 'a'), (1, 'b'), (2, 'c')]
# 시작 인덱스를 변경하고 싶은경우 
print(list(enumerate(arr, start=1)))  # [(1, 'a'), (2, 'b'), (3, 'c')]