Skip to main content
 首页 » 编程设计

python之在不循环的情况下查找特定的字典元素

2025年05月04日12lyhabc

有没有一种方法可以在 python 中检查任何字典元素是否在特定键上具有特定值,而无需遍历整个字典?

所以,在下面的例子中:

 [{ 
        "ID": "1", 
        "Name": "Bob", 
    }, 
    { 
        "Id": "2", 
        "Name": "Dave", 
    }, 
    { 
        "Id": "3", 
        "Name": "Dave", 
    }] 

如果有任何名称为“Dave”的元素,我想得到一个正确/错误的答案

请您参考如下方法:

您的数据结构不支持 O(1) 查找,因此您仍然需要循环遍历它:

any(d['Name'] == 'Dave' for d in dicts) 

将生成器传递给 any 使其短路,因此一旦找到元素它就会停止。

如果您需要经常这样做,您可以将所有项目合并到一个查找表中:

from collections import defaultdict 
 
total = defaultdict(set) 
 
for d in dicts: 
    for key, value in d.items(): 
        total[key].add(value) 

现在,您可以执行 O(1) 查找:

'Dave' in total['Name']