'[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 중국어 웹사이트의 기타 관련 기사를 참조하세요!