如果我有这样的字典:
dictionaryName = {'Key1':'Akins, Richard A. ', 'Key2':'Frederic, Matthew B. ', 'Key3':'Freeman, Gordon J. '}
是否可以编写一些内容,例如输入Richard A.
或Richard
并返回Key1
?
答案 0 :(得分:2)
是的,如果要搜索的文本是其中一个值的确切子字符串,则只能使用PS> & {
Get-Command $args[0] | % Parameters | % $args[1] |
Select-Object Name, Aliases, @{
n = 'Accepts pipeline input';
e = { $(if ($_.Attributes.ValueFromPipeline) { 'by value' }), $(if ($_.Attributes.ValueFromPipelineByPropertyName) { 'by property name' }) -join ', ' -replace '^, ' }
}
} Get-FileHash LiteralPath
Name Aliases Accepts pipeline input
---- ------- ----------------------
LiteralPath {PSPath, LP} by property name
:
(red-vs-blue (cons "red" (cons "blue" (cons 5/7 (cons "blue" empty)))))
⇒ "blue"
• (red-vs-blue empty) ⇒ "tie"
• (red-vs-blue (cons 3 (cons 1 (cons 4 (cons 1 (cons 5 (cons 9 empty))))))) ⇒ "tie"
• (red-vs-blue (cons "red" (cons "green" empty))) ⇒ "red"
如果只需要返回第一个密钥,则可以执行以下操作:
in
答案 1 :(得分:2)
是的,您可以使用adict.items()
for k,v in adict.items():
if "Richard A." in v:
print(k)
# output: Key1
答案 2 :(得分:2)
您基本上是在寻找模糊查找,但看来您的dict键应该是值,反之亦然。也不要使用dict
作为变量名。尝试这样的事情:
next(k for k, v in data.items() if 'Richard' in v)
答案 3 :(得分:1)
示例Python 3.6
example_dict = {'Key1':'Akins, Richard A. ', 'Key2':'Frederic, Matthew B. ', 'Key3':'Freeman, Gordon J. '}
def get_key(d, value):
for k,v in d.items():
if value in v:
print(f'Key: {k}')
return v
get_key(example_dict, 'Richard A')