【问题标题】:What's wrong with this dictionary comprehension code?这个字典理解代码有什么问题?
【发布时间】:2020-09-06 09:37:59
【问题描述】:

我有一个 python 字典,它是某种词汇表。

glossary_dict = {'AA': 'AA_meaning',
                 'BB': 'BB_meaning',
                 'CC': 'CC_meaning',
                 }

这是原始字典。

original = [{'AA': '299021.000000'},
            {'BB': '299021.000000'},
            {'CC': '131993.000000'},
            ]

我想用glossary_dict的对应值替换original字典的键。 最终的结果会是这样的;

explained = {'AA_meaning': '299021.000000',
             'BB_meaning': '299021.000000',
             'CC_meaning': '131993.000000',
            } 

我想使用字典理解方法来解决这个问题。这就是我所做的;

explained = {glossary_dict[key]: value for (key, value) in original[0].items()}

结果是{'AA_meaning': '299021.000000'}。它很接近,但仍然不是正确的答案。我错过了什么?

我正在使用 python 3.7

【问题讨论】:

  • 您的第二本词典是一个词典列表。这是故意的吗?
  • @Nikolas Stevenson-Molnar,是的
  • 在这种情况下,我希望 Rakesh 的回答能满足您的需求。

标签: python python-3.x dictionary dictionary-comprehension


【解决方案1】:

你有一个dicts 的列表,迭代列表然后访问密钥

例如:

explained = {glossary_dict[key]: value for i in original for key, value in i.items()}
print(explained)

输出:

{'AA_meaning': '299021.000000',
 'BB_meaning': '299021.000000',
 'CC_meaning': '131993.000000'}

【讨论】:

    【解决方案2】:

    首先更正您的explained 字典。然后,使用,

    original = [{'AA': '299021.000000'}, {'BB': '299021.000000'}, {'CC': '131993.000000'}, ]

    original = {'AA': '299021.000000', 'BB': '299021.000000', 'CC': '131993.000000'}

    那么,

    explained = {glossary_dict[key]: value for (key, value) in original.items()}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 2012-08-07
      • 2014-08-29
      • 2013-06-05
      • 2014-06-04
      • 2011-07-07
      相关资源
      最近更新 更多