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

用Python研究推文长度对热度的影响:函数编写报错求助

修复三个Python函数的错误实现

需要实现的三个函数需求:

  • tweet_length:接收字符串类型的tweet参数,返回该推文的单词数量(整数);
  • average_tweet_length:接收字符串列表tweet_list参数,返回列表中推文的平均单词长度(浮点数);
  • get_long_tweets:接收字符串列表tweet_list参数,返回列表中长于平均长度的推文。

原错误代码

def tweet_length(tweet):
    return len(tweet)

print(tweet_length("Hello"))


def average_tweet_length(tweet_list):
    for tweet in range(len(tweet_list)):
        average = int(tweet_list[tweet]) / (len(tweet_list)) 
        return average

print(average_tweet_length(['Hello', 'Greetings', 'Hiiii', "Tweet"]))


def get_long_tweets(tweet_list):
    if len(tweet_list) > average:
        return tweet_list

错误分析与修复

1. tweet_length函数问题

原代码返回的是字符串的字符长度,不是单词数量。要按空格分割单词后统计数量,用split()方法(默认按任意空白符分割,兼容多个空格的情况)。

修复后代码:

def tweet_length(tweet):
    # 分割单词并统计数量,空字符串返回0
    words = tweet.split()
    return len(words)

2. average_tweet_length函数问题

  • 循环仅执行一次就返回结果,未累加所有推文的单词数
  • 错误尝试将字符串转成整数,应该先获取每个推文的单词数
  • 逻辑错误:需要先计算所有推文的总单词数,再除以推文总数得到平均值

修复后代码:

def average_tweet_length(tweet_list):
    if not tweet_list:  # 处理空列表的情况,避免除以0
        return 0.0
    total_words = sum(tweet_length(tweet) for tweet in tweet_list)
    return total_words / len(tweet_list)

3. get_long_tweets函数问题

  • 未定义average变量,需要先调用average_tweet_length计算平均值
  • 错误地比较列表长度和平均值,应该遍历每个推文,判断其单词数是否大于平均值,收集符合条件的推文

修复后代码:

def get_long_tweets(tweet_list):
    avg_length = average_tweet_length(tweet_list)
    # 筛选出单词数大于平均值的推文
    return [tweet for tweet in tweet_list if tweet_length(tweet) > avg_length]

测试示例

# 测试tweet_length
print(tweet_length("Hello world"))  # 输出: 2
print(tweet_length("I love Python programming"))  # 输出:4

# 测试average_tweet_length
test_tweets = ['Hello', 'Greetings everyone', 'Hiiii', "Tweet this"]
print(average_tweet_length(test_tweets))  # 输出: (1+2+1+2)/4 = 1.5

# 测试get_long_tweets
print(get_long_tweets(test_tweets))  # 输出: ['Greetings everyone', 'Tweet this']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:10:35