我试图用Python从一些集合中找到最伟大的超集。然而,最大的超集可能不是一个,所以我想知道如何编写代码。例如,如何编写一个代码从下面的集合中搜索最大的超集?你知道吗
# sample sets (dict format)
sample = {
"mammalian" : set(['dog', 'cat', 'horse']),
"bird" : set(['hawk', 'sparrow', 'pigeon']),
"animal" : set(['dog', 'cat', 'horse', 'hawk', 'sparrow', 'pigeon']),
"fruits" : set(['apple', 'strawberry']),
"grain" : set(['corn', 'wheat', 'rice']),
"plant" : set(['apple', 'strawberry', 'corn', 'wheat', 'rice'])
在这种情况下,最伟大的超集是“动物”和“植物”。我曾经这样写过代码,但是我觉得我的代码一点都不pythonic。请给我一些建议或意见,以改善我的代码。你知道吗
谢谢。你知道吗
# my code
keys = list(sample.keys())
candidate = []
candidate.append(keys[0])
for competitor in sample:
comp_set = sample[competitor]
flag = True
for i in range(len(candidate)):
cand_set = candidate[i]
if cand_set >= comp_set:
flag = False
elif comp_set >= cand_set:
candidate[i] = competitor
flag = False
elif flag and (i == len(candidate)-1):
candidate.append(competitor)
candidate = set(candidate)
print(candidate) # {'plant', 'animal'}
目前没有回答
相关问题 更多 >
编程相关推荐