我能够像这样生成所有排列:
from itertools import permutations
lst = ["a", "a", "b"]
combinations_of_3 = list(permutations(lst, 3))
打印:
[('a', 'a', 'b'), ('a', 'b', 'a'), ('a', 'a', 'b'), ('a', 'b', 'a'), ('b', 'a', 'a'), ('b', 'a', 'a')]
我还有一个列表列表,可以包含 2-50 个元素,每个列表仅使用 lst 中找到的项目。
示例:
lst_of_lsts = [['a'],['a', 'b', 'a', 'c'],['a', 'b', 'a', 'c', 'c', 'b', 'a', 'c', 'b']]
真正的lst_of_lsts是100万个列表。
获取所有列表列表中找到的每个排列的计数然后返回前 5 个最流行的排列的有效方法是什么?
例如,您可以使用字典,其中每个组合都等于一个条目。如果可以找到该条目,则可以将字典中存储的相应值更新为 1。如果还没有,您可以创建它并将计数器设置为 1。