擅长:python、mysql、java
<p>正如其他人所说,dict用于快速哈希查找,这意味着您需要查看每个键以找到所需的值。你知道吗</p>
<p>然而,这也可以通过理解来完成:</p>
<pre><code>import re
[v for k, v in my_dict.items() if re.match('key_.*_string', k)]
</code></pre>
<p>您甚至可以创建自己的类来为您执行以下操作:</p>
<pre><code>class FuzzyDict(dict):
def fetch(self, pattern):
p = re.compile(pattern)
return [v for k, v in self.items() if p.match(k)] or None
def fetch_one(self, pattern):
p = re.compile(pattern)
for k, v in self.items():
if p.match(k):
return v
</code></pre>
<p>那么就这么简单了:</p>
<pre><code>d.fetch("my_.*_string")
</code></pre>
<p>使用示例如下:</p>
<pre><code>data = FuzzyDict({'key_1_string':1, "key_2_string":2, "invalid": 3})
data.fetch("key_.*_string")
#[1,2]
data.fetch_one("key_.*_string")
#1
data.fetch("some text")
#None
</code></pre>
<p>如果找不到任何内容,则默认为<code>None</code></p>