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