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

Python字符串长单词反转异常:仅单个符合条件单词被反转

问题原因

你的代码只反转了最后一个符合条件的单词,核心问题有两个:

  • 循环过程中,word和words变量会被最后一次循环的内容覆盖。比如遍历到fellow时,变量存的是反转后的wollef和原词fellow,但接着遍历到warriors时,这两个变量就被替换成sroirraw和warriors,最后只执行了一次替换操作,自然只有最后一个单词被反转。
  • 直接调用原句子的replace方法不够可靠:万一原句子里有重复单词,会错误替换所有匹配项,而且没法批量处理所有需要反转的单词。
解决方法

正确思路是:拆分句子为单词列表,逐个判断处理,最后把处理后的单词重新拼接成句子。

修改后的代码:

def spin_words(sentence):
    processed_words = []
    for word in sentence.split():
        if len(word) >= 5:
            processed_words.append(word[::-1])
        else:
            processed_words.append(word)
    return ' '.join(processed_words)

print(spin_words('Hey fellow warriors'))
# 输出:Hey wollef sroirraw

也可以用更简洁的列表推导式实现:

def spin_words(sentence):
    return ' '.join([word[::-1] if len(word)>=5 else word for word in sentence.split()])

这样就能批量处理所有符合长度要求的单词,不会出现只反转最后一个的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:30:41