import itertools
def compatibility(u1, u2):
"just a stub for demonstration purposes"
return abs(u1 - u2)
def compatibility_map(users):
return dict(((u1, u2), compatibility(u1, u2))
for u1, u2 in itertools.combinations(users, 2))
> compat.compatiblity_map([1,2,3,4,5])
{(1, 2): 1, (1, 3): 2, (4, 5): 1, (1, 4): 3, (1, 5): 4,
(2, 3): 1, (2, 5): 3, (3, 4): 1, (2, 4): 2, (3, 5): 2}
Используйте itertools.permuations вместо itertools.combission, если совместимость (a, b) не означает то же самое, что совместимость (b, a).