如何识别字典中是否存在某些键?

时间:2019-05-28 13:14:43

标签: python python-3.x dictionary

我将字典的名称命名为Entity,如下所示:

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

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

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

条件是:

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

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

  • 如果实体键不由上述键组成,则应在Class词典中更新“弱”值。

我该如何为上述问题创造条件?

我希望在Class字典中输出如下所示,

如果在实体字典中有ORG和PERSIN键,则类字典应类似于

Class = {'Signal' : 'Medium'}

3 个答案:

答案 0 :(得分:0)

要检查字典是否包含特定的键用途,请执行以下操作: 'ORG' in Entity语句,如果字典中存在给定键,则返回True,否则返回False

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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