我正在尝试创建一个简单的字典,每个字母后面都有一个数字(从 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)))
。但是,我想知道如何使用字典理解来做到这一点。谢谢!