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

Python单词计数程序中列表转字典不生效,如何排查修复?

问题根因

  • 多余调用Convert函数:word_count函数已经返回了符合要求的统计字典,你编写的Convert函数会将字典的键两两配对为新的键值对,直接破坏了原有正确的统计结果
  • 未处理大小写:预期输出中所有单词统一为小写,原代码未将输入单词转小写,会导致Well和well、I'm和i'm被识别为不同单词
  • 多行文本拼接遗漏空格:将多行输入拼接为单字符串时没有在行间加空格,会导致前一行末尾单词和后一行开头单词连在一起,拆分错误

修复方案

直接删除无用的Convert函数调用,补充单词小写转换逻辑,拼接多行文本时加入空格分隔即可。

修正后完整代码

def word_count(input_str):
    counts = dict()
    words = input_str.split()

    for word in words:
        # 统一转为小写匹配预期输出规则
        word_lower = word.lower()
        if word_lower in counts:
            counts[word_lower] += 1
        else:
            counts[word_lower] = 1
    return counts


def listToString(s):
    # 拼接行时加入空格分隔,避免单词粘连
    return " ".join(s)


def main():
    print("Enter rows of text for word counting. Empty row to quit.")

    user_values = []
    prompt = ""
    line = input(prompt)

    while line:
        user_values.append(line)
        line = input(prompt)

    user_str = listToString(user_values)
    user_count = word_count(user_str)

    for k, v in sorted(user_count.items()):
        print(f"{k} : {v} times")


if __name__ == "__main__":
    main()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:36:10