擅长:python、mysql、java
<p>@zhangxaochen使用集合的答案在我看来是最整洁的。尽管如此,如果您想使用列表,您可以执行以下操作:</p>
<pre><code>friends = {'Albus': ['Ron', 'Hermione'], 'Harry': ['Ron', 'Hermione', 'Neville']}
def mutual_friends(a, b):
return [x for x in friends[a] if x in friends[b]]
</code></pre>
<p>请注意,这是重新编码集交集(编辑:如果已指示您不要使用集交集,则此解决方案是好的,因为您自己编码:))。你知道吗</p>
<p>所以呢</p>
<pre><code>def recommendations(x):
result = []
for f in friends.keys():
if f != x and mutual_friends(x, f) > 1:
result.append(f)
return result
</code></pre>
<p>基本上,对于给定的人<code>x</code>,找到所有与他们有一个以上共同朋友的人。如果你想要两个共同的朋友,你可以把它改成<code>== 2</code>。你知道吗</p>