簡體   English   中英

Python 在字典中搜索字符串值,如果找到則返回鍵和值

[英]Python search for string values within dictionary and return key and value if found

我已經重新開始並編輯了我的問題以更清楚。 我知道我只是稍微遺漏了一些東西,但只需要一些指導來完成解決方案,因為我無法找到一個帖子來回答這個問題。

我想搜索字典值是否存在多個字符串,如果存在則打印鍵和值。

這是一個示例字典,如果print(d)

{0: array(['flag','weather','brown','bag'],dtype=object), 1: array(['wave','frown','happy','flag'],dtype=object)}

我想搜索這些字符串 -

match = ['flag','frown']

所以我為單個搜索值找到了類似的東西

def matchingKeys(dictionary, searchString):
    return [key for key,val in dictionary.items() if any(searchString in s for s in val)]
matchingKeys(d,'frown')

output 然后是[1]但我想搜索多個這樣的字符串,但 output 不太工作。

{key:s for s in match for key,val in d.items() if any(s in val for s in match)}

當前的 output 在這里,即使frown只存在於[1]

{0 : 'frown',1:'frown'}

如果找到匹配項,這會帶來鍵的每個值,而不僅僅是匹配項

{key:val for key,val in d.items() if any(s in val for s in match)}

我想要的實際 output 是 -

{0:'flag',1:'flag','frown'}

我能夠成功地弄清楚

dict((key, [x for x in value if x in match]) for key,value in d.items())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM