Skip to main content
 首页 » 编程设计

python之在 python 中检测字典数组中重复键值的方法

2025年05月04日11三少

给定以下代码:

a = [{"name": "Sport"}, {"name": "Games"}, {"name": "Videos"}, {"name": "Sport"}] 

如何确定 a 变量中的另一个字典是否具有相同的名称值?在上面的示例中,结果应返回“Sport”。

提前致谢。

请您参考如下方法:

有很多很棒的方法可以做到这一点。 Python 中的规范可能是使用 collections.Counter

from collections import Counter 
 
c = Counter([d['name'] for d in a]) 
for value,count in c.items(): 
    if count > 1: 
        print(value) 

如果您只需要知道某物是否重复(而不是它被重复了多少次),您可以通过使用seen 集来简化。

seen = set() 
for d in a: 
    val = d['name'] 
    if val in seen: 
        print(val) 
    seen.add(val) 

可能最过度设计的方法是按“名称”值对字典进行排序,然后运行 ​​groupby 并检查每个组的长度。

from itertools import groupby 
from operator import itemgetter 
 
namegetter = itemgetter('name') 
 
new_a = sorted(a, key=namegetter) 
 
groups = groupby(new_a, namegetter) 
 
for groupname, dicts in groups: 
    if len(list(dicts)) > 1: 
        print(groupname)