簡體   English   中英

python 檢查單詞是否與字典中的鍵部分匹配

[英]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.

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