我認爲set
是wot您正在查找。
您可以添加和減去集合,找到它們的交集 因此,所有你需要找到動物園哪一組動物具有不屬於動物組的其他動物園的項目。如果你將在動物園中減去動物中的所有其他動物,你就會得到獨特的動物。
zoos = ['mouse,dog', 'dog,tiger,mouse', 'mouse,cat']
for zoo in zoos:
zoo_animal = set(zoo.split(','))
other_zoo_animals = set(animal for z in zoos if z != zoo for animal in z.split(','))
unique_animals = zoo_animal - other_zoo_animals
if unique_animals:
print "%s: %s" % (zoo, unique_animals)
或者你可以找出每個動物的居住地:
zoos = ['mouse,dog', 'dog,tiger,mouse', 'mouse,cat']
animals = {}
for i, zoo in enumerate(zoos):
zoo_animal = set(zoo.split(','))
for animal in zoo_animals:
animals.setdefault(animal, []).append(i)
# Now You can iterate over all animals and find ones which are only present in one zoo
for animal, zoo_list in animals.iteritems():
if len(zoo_list) == 1:
print("% lives in %s only" % (animal, zoo_list[0]))
您可以添加數據結構的一些例子嗎? –
如果您顯示代碼和數據,而不是僅僅描述它,它會更好。 – TryPyPy