【问题标题】:Dict Comprehension Error字典理解错误
【发布时间】:2013-03-31 17:41:37
【问题描述】:

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

【问题讨论】:

    标签: python dictionary dictionary-comprehension


    【解决方案1】:

    enumerate:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 2021-07-24
      • 2016-09-03
      • 1970-01-01
      • 2016-03-14
      • 2019-11-26
      • 1970-01-01
      相关资源
      最近更新 更多