Python에서 두 목록을 사전으로 변환

Rayven Esplanada 2023년1월30일
  1. zip()dict()를 사용하여 두 목록을 Python의 사전으로 변환
  2. 딕셔너리 내포을 사용하여 Python에서 목록을 사전으로 변환
  3. for 루프를 사용하여 Python에서 목록을 사전으로 변환
Python에서 두 목록을 사전으로 변환

이 튜토리얼은 파이썬에서 두 개의 목록을 사전으로 변환하는 방법을 소개합니다. 여기서 하나의 목록은 사전의 키를 포함하고 다른 목록은 값을 포함합니다.

zip()dict()를 사용하여 두 목록을 Python의 사전으로 변환

Python에는 반복 가능한 데이터 유형을 튜플로 집계하여 호출자에게 반환하는zip()이라는 내장 함수가 있습니다. 함수dict()는 주어진 컬렉션에서 사전을 만듭니다.

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = dict(zip(key_list, value_list))
print(dict_from_list)

이 솔루션에서는 한 줄과 두 개의 함수를 사용하여 목록을 사전으로 변환 할 수 있습니다.

출력:

{'name': 'Johnny', 'age': '27', 'address': 'New York'}

딕셔너리 내포을 사용하여 Python에서 목록을 사전으로 변환

사전 이해는 Python에서 사전을 만드는 초기화 시간을 단축하는 방법입니다. 내포은 여러 줄과 변수가 필요한 for 루프를 대체합니다. 내포은 초기화 작업을 한 줄로 수행합니다.

이 솔루션에서zip()함수는 여전히 사전 이해에 값을 제공합니다. 이해는 함수zip()의 반환 값 내에있는 각 연속 요소의 키-값 쌍을 사전으로 반환합니다.

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {k: v for k, v in zip(key_list, value_list)}
print(dict_from_list)

목록을 사전으로 변환하는 또 다른 방법은 목록의 인덱스를 활용하고range()함수를 사용하여 두 목록을 반복하고 이해력을 사용하여 사전을 만드는 것입니다.

키 목록과 값 목록의 길이가 동일하다고 가정합니다. 이 예에서 키 목록 길이는 범위의 기준이됩니다.

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {key_list[i]: value_list[i] for i in range(len(key_list))}
print(dict_from_list)

이 두 가지 이해 솔루션은 이전 예제와 동일한 결과를 제공합니다.

이 두 솔루션의 유일한 차이점은zip()함수를 사용하여 목록을 튜플로 변환한다는 것입니다. 다른 하나는range()함수를 사용하여 현재 색인을 사용하여 두 목록을 반복하여 사전을 만듭니다.

출력:

{'name': 'Johnny', 'age': '27', 'address': 'New York'}

for 루프를 사용하여 Python에서 목록을 사전으로 변환

목록을 사전으로 변환하는 가장 간단한 방법은 반복하는 것입니다. 이 방법은 가장 비효율적이고 길지만, 특히 초보자이고 기본 프로그래밍 구문에 대해 더 많이 이해하려는 경우 좋은 시작입니다.

루핑하기 전에 빈 사전을 초기화하십시오. 그 후, 중첩 된 루프가 필요한 변환을 진행하십시오. 외부 루프는 키 목록을 반복하고 내부 루프는 값 목록을 반복합니다.

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {}
for key in key_list:
    for value in value_list:
        dict_from_list[key] = value
        value_list.remove(value)
        break

print(dict_from_list)

키-값 쌍이 형성 될 때마다 목록에서 값 요소를 제거하여 다음 키에 다음 값이 할당되도록합니다. 제거 후 내부 루프를 끊고 다음 키로 진행하십시오.

루프를 사용하는 또 다른 해결책은 range()를 사용하여 인덱스를 사용하여 키와 값 쌍을 얻는 것입니다. 예에서 사전 이해를 사용하여 수행 한 것과 같습니다.

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {}
for i in range(len(key_list)):
    dict_from_list[key_list[i]] = value_list[i]

print(dict_from_list)

두 솔루션 모두 동일한 출력을 생성합니다.

{"name": "Johnny", "age": "27", "address": "New York"}

요약하면, 두 목록을 사전으로 변환하는 가장 효율적인 방법은 내장 함수zip()을 사용하여 두 목록을 튜플으로 변환 한 다음dict()를 사용하여 튜플을 사전으로 변환하는 것입니다.

사전 이해를 사용하면zip()을 사용하여 목록을 튜플으로 변환하거나range()를 사용하여 목록을 사전으로 변환하고 목록 색인을 사용하여 사전을 반복하고 초기화 할 수도 있습니다.

이 두 솔루션은 일반 루프를 사용하여 목록을 사전으로 변환하는 순진한 솔루션보다 나은 솔루션입니다.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

관련 문장 - Python List

관련 문장 - Python Dictionary