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
。我知道我可以将它们分开并制作具有相同值的多个键,但如果可以的话我真的想避免这样做。可以吗?
而且我还希望能够搜索值(也可能是元组)并获取相应的键。
使用 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
在字典中多次出现,
def search(c):
found = [ ]
for k, v in sample.iteritems():
if type(k) in [list, tuple, dict] and c in k:
found.append(v)
elif c == k:
found.append(v)
return found
这将返回字典中匹配值的列表。
希望对您有所帮助! :)
我是一名优秀的程序员,十分优秀!