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

如何将基于dict的频率统计代码改为list实现并输出高频元素

用列表实现元素频率统计并找出出现次数最多的元素

没问题,我来帮你把这段依赖字典的代码改成只用列表实现的版本,还能直接输出出现次数最多的元素,完全不用字典和内置函数~

实现思路

我们可以用两个平行列表来模拟字典的键值对逻辑:

  • 一个列表unique_items用来存原列表里的唯一元素
  • 另一个列表counts用来对应存储每个唯一元素的出现次数

整体分两步完成:

  1. 遍历原列表,逐个统计每个元素的出现次数
  2. 从统计结果里筛选出出现次数最多的元素

完整代码

L = ["1", "2", "1"]

def find_most_frequent(L):
    unique_items = []
    counts = []
    
    # 第一步:统计每个元素的出现次数
    for item in L:
        found = False
        # 检查当前元素是否已在唯一元素列表中
        for idx in range(len(unique_items)):
            if unique_items[idx] == item:
                counts[idx] += 1
                found = True
                break
        # 若元素未被记录,则添加到两个列表中,初始次数为1
        if not found:
            unique_items.append(item)
            counts.append(1)
    
    # 第二步:找出出现次数最多的元素
    max_count = counts[0]
    most_frequent_item = unique_items[0]
    for idx in range(len(counts)):
        if counts[idx] > max_count:
            max_count = counts[idx]
            most_frequent_item = unique_items[idx]
    
    return most_frequent_item

print(find_most_frequent(L))  # 输出:1

代码细节说明

  1. 统计次数环节:

    • 遍历原列表的每个元素,逐个比对unique_items列表,确认是否已被记录
    • 找到匹配元素时,就把counts对应索引的数值加1
    • 未找到匹配元素时,将元素加入unique_items,同时在counts中添加初始次数1(修正了你原代码里第一次出现赋值为0的错误)
  2. 筛选高频元素环节:

    • 先默认第一个元素是出现次数最多的
    • 遍历counts列表,一旦发现更大的次数值,就同步更新最大次数和对应的元素
    • 最后返回这个出现次数最多的元素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:21:31