답변:
아무도 dict-comprehension 솔루션을 제공하는 데 관심이 없었습니까?
>>> keys = [1,2,3,5,6,7]
>>> {key: None for key in keys}
{1: None, 2: None, 3: None, 5: None, 6: None, 7: None}
False
.
dict.fromkeys(keys, None)
dict.fromkeys(keys, [])
>>> keyDict = {"a","b","c","d"}
>>> dict([(key, []) for key in keyDict])
산출:
{'a': [], 'c': [], 'b': [], 'd': []}
keyDict
코드의 첫 번째 줄이 a set
가 아닌을 반환 하므로 이름 이 잘못되었습니다 dict
.
에서 많은 사용자가 임의의 키에 대한 기본 / 초기 값을 첨부 할 워크 플로우, 당신은하지 않습니다 필요가 개별적으로 미리 해시에 각 키를. 사용할 수 있습니다 collections.defaultdict
. 예를 들면 다음과 같습니다.
from collections import defaultdict
d = defaultdict(lambda: None)
print(d[1]) # None
print(d[2]) # None
print(d[3]) # None
보다 효율적으로 인스턴스화시 모든 키를 해시하지 않아도됩니다. 또한 defaultdict
의 하위 클래스 dict
이므로 일반적으로 일반 사전으로 다시 변환 할 필요가 없습니다.
허용 가능한 키에 대한 제어가 필요한 워크 플로의 경우 dict.fromkeys
허용 된 답변에 따라 사용할 수 있습니다 .
d = dict.fromkeys([1, 2, 3, 4])
dict.fromkeys([1, 2, 3], [])
모든 키가 동일한 목록에 매핑되고 하나를 수정하면 모두 수정됩니다.