【问题标题】:How to match a string value with dictionary value stored as list?如何将字符串值与存储为列表的字典值匹配?
【发布时间】:2014-09-02 19:24:47
【问题描述】:

假设我有一本字典

A1={'b1':['X','0'],'b2':'Empty',.............,}

然后我有一个字符串

item=X

现在我只想将上面的字符串值与 dict 值匹配,因为其他值正在动态更新,只有字符串是搜索的方式。我尝试了下面的代码,但没有成功

for key,value in A1.iteritems():
        if value==item:
            print A1.keys()

【问题讨论】:

标签: python dictionary list-comparison


【解决方案1】:

我假设如果值匹配,那么你想要密钥?

A1 = {'b1': ['X', '0'], 'b2': ['S', 'T'], 'b3': ['X', 'Y']}

item = 'X'

for key, value in A1.iteritems():
    if item in value:
        print key

【讨论】:

  • No!,因为它会返回 true 是 X 是字符串值的子字符串。例如'X' in 'aX' 看来 op 只想签入列表。
  • 谢谢!!我不知道为什么我试图获取所有密钥。笨蛋。非常感谢队友!
  • @user3787457 您的示例字典和标题不正确。
  • 但这就是我想要的.....我有一个仅包含字母的字符串,并且在我的字典中,这些字母与其他一些值一起存储为列表。所以我只想在 dict 中搜索该字符串并获取相应的键。我想我的错误是我要求匹配它们,从而得到一些布尔值。对不起,如果是这样.....
【解决方案2】:

对于 python 3,您可以尝试: 而不是使用 iteritems() 使用 items()-

A1 = {'b1': ['X', '0'], 'b2': ['S', 'T'], 'b3': ['X', 'Y']}

item = 'X'

for key, value in A1.items():
    if item in value:
        print key

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 2021-12-28
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 2019-05-27
    • 1970-01-01
    相关资源
    最近更新 更多