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

如何使用Python循环函数将指定语句中的所有cat替换为dog?

用Python循环实现字符串替换:将所有"cat"替换为"dog"

Hey there! Let's walk through how to build a custom loop-based function to swap every "cat" with "dog" in your target sentence. While Python's built-in str.replace() can do this in one line, building it from scratch with loops will help you grasp the underlying logic clearly.

循环替换的核心逻辑

Here's the step-by-step thinking behind the loop:

  • We'll iterate through the original string, checking each position to see if it starts with the substring we want to replace ("cat").
  • Since "cat" is 3 characters long, we need to check groups of 3 characters at a time as we go.
  • If we find a match, we add "dog" to our result and jump ahead 3 positions (so we don't re-check the same characters).
  • If there's no match, we add the current single character to our result and move ahead 1 position.
  • Once we've checked all possible positions for "cat", we'll tack on any remaining characters from the end of the original string that weren't long enough to form a "cat".

完整代码实现

def replace_substring_with_loop(original_str, old_sub, new_sub):
    # 用列表存结果比直接拼接字符串更高效(字符串不可变,每次+=会生成新对象)
    result_chars = []
    old_sub_length = len(old_sub)
    current_index = 0
    total_length = len(original_str)
    
    # 循环遍历到还能容纳old_sub的最后一个位置
    while current_index <= total_length - old_sub_length:
        # 检查当前位置是否匹配目标子串
        if original_str[current_index:current_index+old_sub_length] == old_sub:
            result_chars.append(new_sub)
            # 跳过已匹配的子串长度
            current_index += old_sub_length
        else:
            # 不匹配就添加当前字符,索引+1
            result_chars.append(original_str[current_index])
            current_index += 1
    
    # 处理字符串末尾剩下的不足old_sub长度的字符
    result_chars.append(original_str[current_index:])
    
    # 把列表拼接成最终字符串
    return ''.join(result_chars)

# 测试我们的函数
original_sentence = "The cat saw another cat and called the other cat to see the cat in the cat house"
modified_sentence = replace_substring_with_loop(original_sentence, "cat", "dog")
print(modified_sentence)

运行结果

When you run this code, you'll get this output:

The dog saw another dog and called the other dog to see the dog in the dog house

额外:Python内置的快捷方式

If you don't need to implement the loop yourself (like for production code), Python's built-in method is way more concise:

modified_sentence = original_sentence.replace("cat", "dog")

This does exactly the same thing, but it's handled internally by Python's optimized code. The loop version is great for learning how the replacement process works!


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:18:17