>백엔드 개발 >파이썬 튜토리얼 >Python에서 대체 키-값 목록을 사전으로 효율적으로 변환하려면 어떻게 해야 합니까?

Python에서 대체 키-값 목록을 사전으로 효율적으로 변환하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-29 16:51:10163검색

How Can I Efficiently Convert an Alternating Key-Value List to a Dictionary in Python?

'[key1,val1,key2,val2]'를 사전으로 변환: Pythonic 메서드

문제:

Python에는 교대 키-값 구조를 가진 목록 a가 있습니다. 여기서 모든 짝수 요소는 사전 키를 나타내고 후속 홀수 요소는 해당 값입니다. 작업은 이 목록을 각 키-값 쌍이 적절하게 매핑되는 사전 b로 변환하는 것입니다.

예:

a = ['hello', 'world', '1', '2']

원하는 출력:

b = {'hello': 'world', '1': '2'}

해결책:

이 문제를 해결하는 가장 간단한 방법은 Python에 내장된 dict()를 사용하는 것입니다. 및 zip() 함수. 다음은 구문적으로 깔끔한 솔루션입니다.

b = dict(zip(a[::2], a[1::2]))

이 방법은 효율적이며 원하는 결과를 얻습니다. 그러나 성능이 문제가 되는 경우 Python의 반복자 도구를 사용하는 것이 대안입니다.

from itertools import izip
i = iter(a)
b = dict(izip(i, i))

이 방법은 임시 목록을 생성하지 않기 때문에 매우 큰 목록을 처리할 때 특히 유용합니다. process.

Python 3에서는 dict comprehension도 간결한 솔루션을 제공합니다.

b = {a[i]: a[i+1] for i in range(0, len(a), 2)}

zip()은 Python 3에서 이미 게으르다. Python 3.8 이상에서는 단일 줄 솔루션에 바다코끼리 연산자(:=)를 사용할 수도 있습니다.

b = dict(zip(i := iter(a), i))

궁극적으로 최선의 선택은 다음에 따라 다릅니다. 특정 요구 사항 및 사용 중인 Python 버전. 이러한 방법은 교대 키-값 쌍 목록을 Python의 사전으로 변환하기 위한 깔끔하고 효율적인 솔루션을 제공합니다.

위 내용은 Python에서 대체 키-값 목록을 사전으로 효율적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.