data = [
(1, ["apple", "banana", "cherry"]),
(2, ["banana", "cherry", "apple"]), # тот же набор
(3, ["apple", "banana"]),
(4, ["cherry", "apple"]), # другой набор
(5, ["apple", "banana", "cherry"]), # третий с тем же набором
[
(["apple", "banana", "cherry"], [1,2,5]),
(["apple","banana"], [3]),
(["apple","cherry"], [4])
]
from collections import defaultdict
def get_users_and_baskets(fruits_baskets):
data = defaultdict(list)
for user, basket in fruits_baskets:
key = frozenset(basket)
data[key].append(user)
return sorted(data.values(), key=len, reverse=True)
print(get_users_and_baskets(data))