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

Python wordcount函数return失效print正常问题求助

嘿,我一眼就看到问题出在哪了!

问题诊断

你的核心问题是**return语句的位置错误**!

看你当前的代码结构,return被放在了第一个for循环的内部——这意味着函数在处理mylist的第一个元素时,就会立刻返回结果并终止执行,后面的元素根本没机会被处理。而用print的话,每次循环都会执行打印操作,所以你能看到所有元素的结果,但函数其实还是提前结束了。

修正方案

要实现返回所有元素单词数的列表,你需要:

  1. 先初始化一个空列表,用来存储每个元素的计算结果
  2. 在循环中把每个元素处理后的单词数添加到这个列表里
  3. 等所有元素都处理完,再统一返回这个列表

修正后的代码如下:

def wordcount(mylist):
    # 初始化空列表存储结果
    result = []
    for i in mylist:
        # 遍历标点符号并替换为空格
        for c in "-,_.":
            i = i.replace(c, " ")
        # 分割字符串并计算单词数量
        word_num = len(i.split())
        # 将结果添加到列表中
        result.append(word_num)
    # 所有元素处理完成后返回结果列表
    return result
测试验证

比如你传入测试列表:

test_list = ["hello,world!", "python_is-cool", "a b-c_d"]
print(wordcount(test_list))

会得到输出:[2, 2, 4],完全符合你的需求。

额外小提示
  • str.split()默认会按任意空白字符分割(包括多个空格),所以即使替换标点后出现多个空格,也不会影响单词数的计算
  • 如果需要处理更多标点,可以扩展标点字符串,比如加上!?;:()这些

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:36:52