我正在尝试为每个字母创建一个简单的字典,后面带有一个数字(从1-26开始),如下所示:{'a': 1, 'b': 2, 'c': 3, ...}
。
我想尝试使用词典理解来做到这一点,所以我做了:
from string import lowercase
d = {s:i for s in lowercase for i in range(1, 27)}
然而,这导致:{'a': 26, 'b': 26, 'c': 26, ...}
。我认为这是因为它以小写形式迭代每个值,将其分配给1,然后是2,然后是3(对于每个值),以26结尾。只有26个键,因为它是一个字典,它不会有两个键相同的字母(因此它将所有这些都覆盖到最后的26)。我不知道如何解决这个问题,所以如果我能够获得如何实际操作的指导,那就太棒了。
我使用dict()
和zip()
:dict(zip(lowercase, range(1, 27)))
开始工作。但是,我想知道如何使用字典理解来做到这一点。谢谢!