【发布时间】:2013-12-02 16:02:07
【问题描述】:
我想创建一个字典,它将字母表中的所有字符作为键。我通过以下方式做到这一点:
import string
origAlphabetUpCase = string.ascii_uppercase
print origAlphabetUpCase
upCaseDict = dict((el,'') for el in origAlphabetUpCase)
我得到的结果如下:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
{'A': '', 'C': '', 'B': '', 'E': '', 'D': '', 'G': '', 'F': '', 'I': '', 'H': '', 'K': '', 'J': '', 'M': '', 'L': '', 'O': '', 'N': '', 'Q': '', 'P': '', 'S': '', 'R': '', 'U': '', 'T': '', 'W': '', 'V': '', 'Y': '', 'X': '', 'Z': ''}
由于某种原因,键的顺序与初始字符串中的顺序不同。似乎交换了字符对(A 和 Z 除外)。
知道这是如何发生的以及为什么会发生吗?
【问题讨论】:
-
see this post。
dict是散列的,所以基本上没有顺序。或者你可以使用OrderedDict -
由于您通过键访问字典,因此字典的显示顺序并不重要。
标签: python dictionary