在给定集合生成 3 的所有排列后,如何在列表列表中找到最频繁的排列?

问题描述 投票:0回答:1

我能够像这样生成所有排列:

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 个最流行的排列的有效方法是什么?

python list math permutation
1个回答
0
投票

例如,您可以使用字典,其中每个组合都等于一个条目。如果可以找到该条目,则可以将字典中存储的相应值更新为 1。如果还没有,您可以创建它并将计数器设置为 1。

© www.soinside.com 2019 - 2024. All rights reserved.