擅长:python、mysql、java
<p>您可以使用<a href="http://docs.python.org/library/fnmatch.html" rel="nofollow noreferrer">^{<cd1>}</a>作为匹配字典键的功能,但是您必须稍微妥协语法,特别是如果您想在嵌套字典上这样做的话。也许一个自定义的类似字典的类带有返回通配符匹配的搜索方法会很好地工作。在</p>
<p>下面是一个非常基本的示例,它带有一个警告:这不是递归的,并且不会处理嵌套字典:</p>
<pre><code>from fnmatch import fnmatch
class GlobDict(dict):
def glob(self, match):
"""@match should be a glob style pattern match (e.g. '*.txt')"""
return dict([(k,v) for k,v in self.items() if fnmatch(k, match)])
# Start with a basic dict
basic_dict = {'file1.jpg':'image', 'file2.txt':'text', 'file3.mpg':'movie',
'file4.txt':'text'}
# Create a GlobDict from it
glob_dict = GlobDict( **basic_dict )
# Then get glob-styl results!
globbed_results = glob_dict.glob('*.txt')
# => {'file4.txt': 'text', 'file2.txt': 'text'}
</code></pre>
<p>至于什么方法是最好的?最好的方法是有效的方法。不要试图在解决方案创建之前优化它!在</p>