리스트 두 개로 딕셔너리 만들기

동일한 길이를 가진 리스트 2개가 있을 때,

한쪽 리스트에 있는 값들은 딕셔너리의 key 로, 

다른쪽 리스트에 있는 값들인 딕셔너리의 value로 활용하고 싶습니다.

이를 위한 간단한 로직들입니다.

여러 개가 있어서 쭈욱 아래로 나열했습니다.

코드

먼저 가장 대중적인 방법이 아닐까 싶은 zip 방법입니다. 

				
					keys = ['a', 'b', 'c']
values = [1, 2, 3]

# keys 리스트의 각 항목을 키로, values 리스트의 각 항목을 값으로 하는 딕셔너리를 생성합니다.
result_dict = dict(zip(keys, values))

print(result_dict)

# result 
{'a': 1, 'b': 2, 'c': 3}

				
			

다음은 위 코드와 마찬가지의 결과를 낼 수 있는 다른 로직입니다.

				
					keys = ['a', 'b', 'c']
values = [1, 2, 3]

result_dict = {keys[i]: values[i] for i in range(len(keys))}


				
			

위와 비슷하게 반복문을 이용한 경우입니다. 

				
					keys = ['a', 'b', 'c']
values = [1, 2, 3]

result_dict = {}
for i in range(len(keys)):
    result_dict[keys[i]] = values[i]


				
			

collections 모듈의 defaultdict을 사용하여 딕셔너리를 생성하고, 같은 방식으로 키-값 쌍을 추가할 수 있습니다. 이 방법은 주로 키가 중복될 때 유용합니다.

				
					from collections import defaultdict

keys = ['a', 'b', 'c']
values = [1, 2, 3]

result_dict = defaultdict(list)  # default를 list로 설정
for key, value in zip(keys, values):
    result_dict[key].append(value)  # 중복 키에 대해 값을 리스트에 추가



				
			

마치며...

리스트를 통한 딕셔너리 제작 방법을 살펴봤습니다.^^

이런 식으로 간단한 포스팅이라도 하며 하루에 하나씩은 포스팅을 올리는 것을 올해 목표로 잡고 있습니다.