【发布时间】:2016-10-06 05:44:39
【问题描述】:
我有一个函数 guess,它应该返回与观察集 (arg1) 匹配的一组动物值 (arg2) 的键。例如,如果观察集 = {'pet,' 'fluffy'} 并且动物字典 = {'cat': {'pet,' 'fluffy', 'cute'}, 'dog': {'pet '}} 那么函数应该返回 cat 的键,因为 cat 具有观察集所具有的所有值和集合元素。请注意, cat 还具有观察没有的额外值/元素。另请注意,dog 具有观察集所具有的值之一——“pet”——但是,dog 并不具有观察集所具有的所有值,因此不会返回它。
这是我目前的功能:
def guess(observations, animals):
for key, value in animals.items():
if observations in value:
return key
这是一个测试:
guess({'pet', 'fluffy'}, {'cat': {'pet', 'fluffy', 'cute'}, 'dog': {'pet'}})
到目前为止,当我希望它返回 cat 时,我的函数返回 None。如何查看我的一组观察结果是否与一组动物值的一组和/或子集匹配?我的想法想让我错误地认为检查一组观察值是否在一组值中是比较集合的最佳方法。我还尝试遍历我的观察结果,看看它们是否在一组值中。这种方法在一定程度上是有效的。但是,当我尝试时:
for key, value in animals.items():
for obs in observations:
if obs in value:
return key
它返回狗。我会很感激任何帮助。谢谢
【问题讨论】:
标签: python python-3.x