是否可以查看字典的值是否包含字符串的X?

时间:2020-02-11 21:54:00

标签: python dictionary

如果我有这样的字典:

 dictionaryName = {'Key1':'Akins, Richard A. ', 'Key2':'Frederic, Matthew B. ', 'Key3':'Freeman, Gordon J. '}

是否可以编写一些内容,例如输入Richard A.Richard并返回Key1

4 个答案:

答案 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')