当键是元组时搜索字典键

2024-06-17 14:49:58 发布

您现在位置:Python中文网/ 问答频道 /正文

sample = {('red', 'blue', 'purple') : 'color', 'redo' : 'again', 'bred' : 'idk', 'greeting' : ('hi', 'hello')}

def search(c):
    if c in sample.keys():
        return sample[c]

print(search('red'))

这将返回None。我知道我可以将它们分开并生成具有相同值的多个键,但如果可以的话,我真的希望避免这样做。我可以吗?在

我还希望能够搜索值(也可以是元组)并获得相应的键。在


Tags: samplehellosearchifdefblueredhi
2条回答

使用iteritems()将对您有所帮助。更新您的search()方法如下。应该能正常工作。在

def search(c):
    for k, v in sample.iteritems():
        if type(k) in [list, tuple, dict] and c in k:
            return v
        elif c == k:
            return v

如果字典中多次出现c

^{pr2}$

这将返回字典中匹配值的列表。在


希望这有帮助!:)

如果您不需要搜索整个元组('red', 'blue', 'purple'),那么只需稍微改变一下您的字典,也许:

sample = {e: v for k, v in {('red', 'blue', 'purple') : 'color'}.items()
               for e in k}

相关问题 更多 >