我有一本字典,里面有许多相似的人。因此,从上述声明中,我希望David和charles作为一个相似的人列表返回,基于共同的兴趣(在本例中是数据挖掘),Ramesh和Suresh作为第二个相似的人列表返回(两个都是共同的遗传学)。如何做到这一点(没有函数的结果是好的)?你知道吗
dataset={
'David':['Artificial Intelligence','Machine learning', 'Neural networks', 'data mining'],
'Charles':['embedded computing','data mining','digital filters','signal processing','virtual reality','augmented reality'],
'Ramesh':['molecular biology','genetics','neuro surgery','oncology','ophthalmology'],
'Suresh':['genetics','neurology','ENT','bioinformatics','gene processing','radiology','pharmacology']
}
def commoninterest(personi,personj):
similar_persons=[]
for interest in dataset[personi]:
if interest in dataset[personj]:
similar_persons.append(personi,personj)
return similar_persons
就像Imre Piller说的,你想把兴趣储存在列表中。这里有一个可能的解决办法。另外,这个函数告诉你这对情侣有什么共同的兴趣,但是如果你想的话,你可以去掉它。你知道吗
结果(python 2):
这个问题没有确切的定义。这个例子表明,一个共同的属性足以使两个人相似。在这种情况下,您应该创建尽可能多的主题列表。(也许,您可以消除空列表。)
我想让你做一个更复杂的衡量你应该定义一个衡量人与人之间的共同利益的数量为基础。在这种情况下,我建议使用兴趣集而不是列表,因为
相关问题 更多 >
编程相关推荐