[英]python check if word matches portion of key in a dictionary
有人可以幫忙嗎? 我想對字典鍵中的單詞進行部分搜索。
$ cat dic.py
dic={"pluto_123":"yes"}
print("pluto" in dic)
$python dic.py
False
您可以看到結果是 False ,這是預期的,但相反,我需要得到結果為 True 以pluto_123包含pluto
提前致謝
通過您的檢查,您需要有一個完全稱為pluto
的密鑰。 因為你沒有,所以你得到了False
。
對於字典中的每個鍵,您需要檢查您的 substring 是否存在於鍵中:
>>> print(any("pluto" in key for key in dic))
True
你可以這樣做,但是你浪費了字典在 O(1) 中進行查找的能力。
for key in dic:
if "pluto" in key:
print("found")
break
這是另一個利用dict
class 擴展的解決方案。
class MyDict(dict):
def __contains__(self, item):
for key in self.keys():
if item in key:
return True
return False
d = MyDict()
d.update({"pluto_123":"yes"})
print("pluto" in d)
Output:
True
請記住,這將對可讀性和性能產生影響。
您也可以通過這種方式創建新類型的 dict。
class NewDict(dict):
def __contains__(self, key):
return any(key in k for k in self.keys())
dic=NewDict(pluto_123 ="yes", plu45="90")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.