programing

목록의 키와 값이 0으로 기본 설정된 사전을 만들려면 어떻게 해야 합니까?

lovejava 2023. 6. 18. 09:59

목록의 키와 값이 0으로 기본 설정된 사전을 만들려면 어떻게 해야 합니까?

있습니다a = [1,2,3,4]그리고 나는 원합니다.d = {1:0, 2:0, 3:0, 4:0}

d = dict(zip(q,[0 for x in range(0,len(q))]))

작동하지만 못생겼습니다.더 깨끗한 방법은 무엇입니까?

dict((el,0) for el in a)잘 작동할 것입니다.

Python 2.7 이상에서는 딕트 이해도 지원합니다.그 구문은{el:0 for el in a}.

d = dict.fromkeys(a, 0)

a목록입니다.0기본값입니다.기본값이 사전의 모든 키에 대한 값으로 사용되는 하나의 개체가 되므로 기본값을 일부 가변 개체(예: 목록 또는 딕트)로 설정하지 않도록 주의하십시오(이 경우 해결 방법은 여기에서 확인).숫자/문자열은 안전합니다.

python 버전 >= 2.7 및 python 3:

d = {el:0 for el in a}

특정 예제에 매우 적합한 Tim의 답변 외에도 다음과 같은 작업을 수행할 수 있는 언급할 가치가 있습니다.

>>> d = defaultdict(int)
>>> d[0] += 1
>>> d
{0: 1}
>>> d[4] += 1
>>> d
{0: 1, 4: 1}

매핑용[1, 2, 3, 4]당신의 예처럼, 그것은 물 밖에 있는 물고기입니다.하지만 당신이 질문한 이유에 따라, 이것은 더 적절한 기술이 될 수 있습니다.

d = dict([(x,0) for x in a])

**Tim의 솔루션을 편집하는 것이 더 좋습니다. 생성자를 사용하기 때문에 팀의 답변에 대한 의견을 확인할 수 있습니다.

언급URL : https://stackoverflow.com/questions/3869487/how-do-i-create-a-dictionary-with-keys-from-a-list-and-values-defaulting-to-say