繁体   English   中英

如何找出具有最大公共值数量的字典的键?

[英]How to find out the keys of a dictionary with maximum number of common values?

假设,有一本像

my_dict = {'A': {'5', '7', '9', '3'},
           'B': {'4', '8','3'},
           'C': {'5', '3', '2', '9'},
           'D': {'1','6', '8','3'},
           'E': {'4','3','5'}}

现在 output 应该像 {A,C} 因为它们有最多的公共值。

dct = {'A': {'5', '7', '9', '3'}, 'B': {'4', '8','3'}, 'C': {'5', '3', '2', '9'}, 'D': {'1','6', '8','3'}, 'E': {'4','3','5'}}
ans = [None, None]
mx = 0

for i in dct:
    for j in dct:
        if i != j and len(dct[i].intersection(dct[j])) > mx:
            ans = [i, j]
            mx = len(dct[i].intersection(dct[j]))

由于包含集合,为了找到公共元素的数量,我们有intersection方法。

>>> ans
['A', 'C']

虽然,值得注意的是,这段代码总是会产生一对。 如果您想要更多数量的元素,则循环的数量将相应增加。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM