结合使用
collections.Counterdict
itertools.combinations:
from collections import Counterfrom itertools import combinationsd = Counter()for sub in a: if len(a) < 2: continue sub.sort() for comb in combinations(sub,2): d[comb] += 1print(d.most_common())[(('Jennifer', 'John'), 3), (('John', 'Mark'), 2), (('Jennifer', 'Mark'), 2), (('Anna', 'John'), 1), (('Joe', 'Mark'), 1), (('Anna', 'Jennifer'), 1)]most_common()将以最常见到最少的顺序返回配对,您要第一个
n最常见的通过
n
d.most_common(n)



