Skip to main content
 首页 » 编程设计

python之在集合字典中识别包含正确值的集合

2025年05月04日22qq78292959

我有一个集合字典和两个要测试的值。我需要确定包含这两个值的集合(只有一个正确的集合)并返回该集合的键。我以为我可以使用下面这样的单行代码,但到目前为止还没有成功。

d = {"set1": {"A", "B", "C"}, "set2": {"D", "E", "F"}, "set3":{"A", "D", "C"}} 
value1 = "A" 
value2 = "B" 
 
def do_values_belong_in_same_set(value1, value2): 
    if all(x in v for k, v in d.items() for x in [value1, value2]) is True: 
        return True, k 
    else: 
        return False 

这里期望的输出是:True, "set1"

“v for k, v in d.items()”部分并不能解决问题。更简单的“x in d.values()”也没有什么用?还是我只需要为此构建一个合适的 for 循环?感谢您的帮助!

请您参考如下方法:

>>> value1 = "A" 
>>> value2 = "B" 
>>> d = {"set1": {"A", "B", "C"}, "set2": {"D", "E", "F"}, "set3":{"A", "D", "C"}} 
>>> [k for k, v in d.items() if value1 in v and value2 in v] 
['set1']