如果我有这样的字典:
dictionaryName = {'Key1':'Akins, Richard A. ', 'Key2':'Frederic, Matthew B. ', 'Key3':'Freeman, Gordon J. '}
是否有可能写出可以输入诸如Richard A.
或Richard
并返回Key1
的东西?
是,您可以使用adict.items()
for k,v in adict.items():
if "Richard A." in v:
print(k)
# output: Key1
您基本上是在寻找模糊查找,但看来您的字典键应该是值,反之亦然。也不要使用dict
作为变量名。尝试这样的事情:
next(k for k, v in data.items() if 'Richard' in v)
是,如果要搜索的文本是值之一的确切子串,则可以使用in
:>
def search_dict(d, needle): return [k for k, v in d.items() if needle in v] d = {'Key1':'Akins, Richard A. ', 'Key2':'Frederic, Matthew B. ', 'Key3':'Freeman, Gordon J. '} print(search_dict(d, "Richard"))
如果只需要返回第一个键,您可以做:
def search_dict(d, needle):
for k, v in d.items():
if needle in v:
return k
Python范例3.6