2013-03-31 2 views
1

{'a': 1, 'b': 2, 'c': 3, ...}과 같이 나중에 (1-26) 숫자가있는 각 문자의 간단한 사전을 만들려고합니다. 나는이 일을 사전 이해를 사용 원했고, 그래서 내가 그랬어 : {'a': 26, 'b': 26, 'c': 26, ...} :Dict Comprehension Error

from string import lowercase 
d = {s:i for s in lowercase for i in range(1, 27)} 

그러나이 발생합니다. 이것이 소문자의 모든 값을 반복하고 1, 2, 3을 (모든 값에 대해) 26으로 끝나기 때문에 발생한다고 생각합니다. 사전이므로 2 개의 키가 없으므로 26 개의 키만 있습니다. 같은 편지의 (그래서 그것은 결국 모두 26을 덮어 씁니다). 이 문제를 해결하는 방법을 잘 모르겠습니다. 실제로이 작업을 수행하는 방법에 대한 지침을 얻을 수 있다면 좋을 것입니다.

dict()zip() : dict(zip(lowercase, range(1, 27)))을 사용하여 작동하게했습니다. 그러나 사전 통역을 사용하여이를 수행하는 방법을 알고 싶습니다. 감사! enumerate

답변

4

:

{s: i for i, s in enumerate(lowercase, 1)}