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

Python如何访问字典嵌套列表内元组值 返回最高重复字符单词

问题根源

你的代码返回错误结果,核心是两处逻辑错误:

  • 遍历字典outcome取最大值时,迭代得到的x是字典的键(也就是单词字符串本身),x[1]取的是单词的第2个字符,本质是按字符ASCII码大小排序,完全没有用到你之前统计的字符计数。所有测试单词的第二个字符里example的xASCII码值最高,所以才会被选中,和你推测的原因一致。
  • 你存入outcome的值是每个单词所有字符的(字符, 计数)元组列表,没有提前提取出每个单词对应的「单字符最高重复次数」这个核心比较指标,哪怕调整key的写法,也拿不到正确的比较值。
修正方案

不需要额外存所有字符的计数列表,对每个单词直接计算单字符最高出现频次,再以这个频次为key取最大值即可,写法更简洁:

def most_repeating_word(ls):
    word_list = ls.split()
    # 定义比较规则:输入单词,返回该单词里单字符的最高重复次数
    def get_max_count(word):
        return max(word.count(char) for char in set(word))
    
    return max(word_list, key=get_max_count)

# 测试
print(most_repeating_word('this is an elementary test example'))
# 输出:elementary

如果你想保留原来用字典存统计结果的写法,只需要改两处逻辑:一是存值的时候存每个单词的最高重复次数,二是取max的时候正确读取字典里存的计数值:

def most_repeating_word(ls):
    listed = ls.split()
    outcome = {}
   
    for word in listed:
        char_count = []
        # 用set直接对单词字符去重,比手动维护去重列表效率更高
        for char in set(word):
            char_count.append(word.count(char))
        # 直接存当前单词的最高单字重复次数,不需要存所有字符的计数元组
        outcome[word] = max(char_count)

    # 取max时,key要从outcome里取对应单词的计数值做比较
    return max(outcome, key = lambda x: outcome[x])

print(most_repeating_word('this is an elementary test example'))
# 输出:elementary

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:27:17