私が次のような辞書の中に辞書を持っているとしましょう:
Allusers={
User1: {'Film1': Vote1, 'Film2': Vote2}
User2: {'Film1': Vote1, 'Film2'; Vote2}
...
}
すべての人を他の人と一度だけ比較するには、論理/アルゴリズム/式が必要です。これにどのようにアプローチする必要がありますか?ありがとうございました。
私が次のような辞書の中に辞書を持っているとしましょう:
Allusers={
User1: {'Film1': Vote1, 'Film2': Vote2}
User2: {'Film1': Vote1, 'Film2'; Vote2}
...
}
すべての人を他の人と一度だけ比較するには、論理/アルゴリズム/式が必要です。これにどのようにアプローチする必要がありますか?ありがとうございました。
from itertools import combinations
Allusers={
'User1': {'Film1': 'Vote1', 'Film2': 'Vote2'},
'User2': {'Film1': 'Vote1', 'Film2': 'Vote2'}
}
for comb in combinations(Allusers, 2):
if Allusers[comb[0]] == Allusers[comb[1]]:
print '{0} is same with {1}'.format(comb[0], comb[1])
何かのようなもの :
users={
User1: {'Film1': Vote1, 'Film2': Vote2}
User2: {'Film1': Vote1, 'Film2'; Vote2}
User3: {'Film1': Vote1, 'Film2'; Vote2}
User4: {'Film1': Vote1, 'Film2'; Vote2}
}
keys=list(users)
for i,x in enumerate(keys):
for y in keys[i+1:]:
#compare users[x] and users[y] here
ここでは、最初のループUser1
でユーザーと比較さ2,3,4
れ、次のループでは、ユーザーが最初のループでUser2
すでに比較されている場合にのみ、ユーザー3,4と比較されUser1
ます。