8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

找到 5 个唯一元素的所有组合后,我想找出列表列表中哪个组合出现的次数最多?

Android Control 3月前

89 0

在 python 中我使用 itertools 组合来获取所有唯一的 5 个组合:from itertools import combinationslst = [\'a\', \'b\', \'c\', \'d\',\'e\', \'f&...

在 python 中我使用 itertools 组合来获取所有唯一的 5 个组合:

from itertools import combinations
lst = ["a", "b", "c", "d","e", "f"]
combinations_of_5 = list(combinations(lst, 5))

然后,我得到了一个列表列表,我已过滤该列表列表,仅包含来自 lst 的项目。现在,我需要统计在列表中找到的最受欢迎的组合。

lst_of_lsts = [
               ["e", "d", "c", "b", "a", "c", "d", "b"],
               ["e", "b", "c", "a", "b", "e", "c"],
               ["a", "b", "a", "d", "b", "a", "a"],
               ["a", "b", "c", "d", "e", "c", "d"],
               ["e", "d", "c", "b","a"]
              ]

我以为这会相当简单,但我一直在努力寻找一种可靠的方法来做到这一点并确保结果准确。我实际的列表列表要大得多(几百万个列表),我想知道在列表列表中发现的 10 个最受欢迎的组合。我的想法是也许使用滑动窗口技术,看看其中是否存在任何组合。

任何帮助表示感谢。

尝试提供的解决方案:

from itertools import combinations
from collections import Counter

lst = ["a", "b", "c", "d","e"]

lst_of_lsts = [
               ["e", "d", "c", "b", "a", "c", "d", "b"],
               ["e", "b", "c", "a", "b", "e", "c"],
               ["a", "b", "a", "d", "b", "a", "a"],
               ["a", "b", "c", "d", "e", "c", "d"],
               ["e", "d", "c", "b","a"]
              ]

combinations_of_5 = set(combinations(lst, 5))

data = map(tuple, lst_of_lsts)
c = Counter(comb for comb in data if comb in combinations_of_5)
print(c.most_common(10))

返回 []

帖子版权声明 1、本帖标题:找到 5 个唯一元素的所有组合后,我想找出列表列表中哪个组合出现的次数最多?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Android Control在本站《list》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 首先将 itertools 生成的组合存储在一个集合中,以便快速进行成员资格测试。

       combinations_of_5 = set(combinations(lst, 5))
    

    接下来将您的列表过滤为 collections.Counter

       data = map(tuple, lst_of_lsts)
       c = Counter(comb for comb in data if comb in combinations_of_5)
       print(c.most_common(10))
    

    话虽如此,我认为您实际上可能正在寻找排列而不是组合。

返回
作者最近主题: