【问题标题】:How to identify if certain keys are present in dictonary?如何识别字典中是否存在某些键?
【发布时间】:2019-05-28 13:14:43
【问题描述】:

我有一个名为 Entity 的字典,看起来像这样:

Entity = {'ORG': 'ABC','PERSON': 'Ankit','ORDINAL': '150th','DATE': 'quarterly', 'MONEY': 'dollars'}

现在我必须根据条件创建其他包含以下值的字典。

Class = {'Signal':'<Condition>'}

条件是:

  • 如果实体键由 ORG 和 PERSON 组成,则应更新 Class 字典中的值“Medium”。

  • 如果实体键由 ORG、PERSON 和 MONEY 组成,则应更新 Class 字典中的值“Strong”。

  • 如果实体键不包含上述键,则应更新类字典中的“弱”值。

我应该如何为上面的问题做条件?

我想要一个类字典中的输出,如下所示,

如果实体字典中有 ORG 和 PERSIN 键,那么类字典应该是这样的,

Class = {'Signal' : 'Medium'}

【问题讨论】:

标签: python python-3.x dictionary


【解决方案1】:
if all([a in Entity for a in ('ORG', 'PERSON', 'MONEY')]):
    Class['Signal'] = 'strong'
elif all([a in Entity for a in ('ORG', 'PERSON')]):
    Class['Signal'] = 'middle'
elif not any([a in Entity for a in ('ORG', 'PERSON', 'MONEY')]):
    Class['Signal'] = 'weak'

请注意,根据您的问题,如果Entity 仅包含'ORG' 或仅包含'PERSON',则'Signal' 将不会设置在Class 中。

【讨论】:

    【解决方案2】:

    检查字典是否包含特定的键使用: 'ORG' in Entity 语句,如果字典中存在给定键则返回 True,否则返回 False

    【讨论】:

      【解决方案3】:

      您可以在访问数据结构之前使用字典上的.keys() 函数进行检查。例如:

      def does_key_exist(elem, dict):
          return elem in dict.keys()
      

      【讨论】:

        猜你喜欢
        • 2023-04-09
        • 1970-01-01
        • 2012-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-25
        • 1970-01-01
        • 2013-11-16
        相关资源
        最近更新 更多