You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计数组内嵌套列表中各成员对共同出现的列表次数

统计列表元素对共同出现次数的解决方案

核心思路

遍历所有子列表,对每个子列表的元素生成两两不重复的无序组合,用计数器累加每个组合的出现次数,最终得到的计数就是对应元素对共同出现的列表数量。

实现代码

from itertools import combinations
from collections import Counter

# 示例输入数据
data = [['a', 'b', 'c'], ['a', 'b'], ['c']]
pair_counter = Counter()

for sub_lst in data:
    # 先对子列表去重,避免同一列表内重复元素导致统计异常,无重复数据可省略该步
    unique_items = list(set(sub_lst))
    # 生成所有两两组合,sorted保证a-b和b-a视为同一对
    for pair in combinations(sorted(unique_items), 2):
        pair_counter[pair] += 1

# 格式化输出结果
print(f"{'member_one_is':<15} {'member_two_is':<15} COUNT")
for (member1, member2), count in pair_counter.items():
    print(f"{member1:<15} {member2:<15} {count}")

运行结果

member_one_is   member_two_is   COUNT
a               b               2
a               c               1
b               c               1

方案优势

  • 计算效率高:仅需要遍历所有子列表一次,单个子列表内的组合生成无冗余计算,适合绝大多数业务场景
  • 鲁棒性强:内置去重逻辑,可兼容子列表存在重复元素的场景
  • 结果准确:通过sorted+combinations生成无序对,不会重复统计反向的相同元素对

内容的提问来源于stack exchange,提问作者Mayak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:36:03