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

如何筛选嵌套列表中目标子列表的最高频次项并识别状态标识

解决方案

核心思路

用字典做分组容器,把前11个字符串整数组成的元组作为唯一键,对应存储该组的状态和出现次数。遍历列表时,若键已存在,就对比当前条目与已存条目的出现次数,保留次数更多的;若不存在则直接存入。

代码实现

# 示例输入列表
listA = [
    ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "up", 5],
    ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "down", 10],
    ["2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "up", 7],
    ["2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "down", 6]
]

# 初始化分组字典
grouped_data = {}

for item in listA:
    # 拆分条目:前11项转成元组(可作为字典键)、状态、出现次数
    key = tuple(item[:11])
    current_status = item[11]
    current_count = item[12]
    
    if key not in grouped_data:
        grouped_data[key] = (current_status, current_count)
    else:
        # 对比次数,保留更大的条目
        existing_status, existing_count = grouped_data[key]
        if current_count > existing_count:
            grouped_data[key] = (current_status, current_count)

# 提取每个分组对应的最优状态
final_result = {k: v[0] for k, v in grouped_data.items()}

# 打印结果示例
for key, status in final_result.items():
    print(f"前11项组合: {key},最优状态: {status}")

代码说明

  • 分组键设计:将前11个字符串整数转为元组作为字典键,因为列表不可哈希无法作为键,元组的可哈希性能保证相同的11项组合对应唯一键。
  • 逻辑处理:遍历过程中完成分组与筛选,无需额外遍历两次,效率更高。遇到重复分组时直接对比次数,替换为次数更高的状态条目。
  • 结果输出:最终字典的键是11项组合的元组,值是该组合对应的最优状态,按需提取即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:10:28