Python如何实现每两个单词后将空格替换为指定符号
实现方案
你原代码的问题确实是str.replace()默认会替换全文所有匹配的空格,而非指定位置的单个空格,且Python字符串是不可变类型,无法直接修改单个位置字符,这里提供两种稳定可行的实现方式:
方法1:转字符列表修改指定位置
这种方法兼容单词间多空格、特殊空格等场景,通用性更强:
text = "this is a sample text" char_list = list(text) space_counter = 0 for index, char in enumerate(char_list): if char == ' ': space_counter += 1 # 第2、4、6...个空格替换为@ if space_counter % 2 == 0: char_list[index] = '@' result = ''.join(char_list) print(result) # 输出:this is@a sample@text
方法2:分割单词后分组拼接
如果确认输入的单词之间都是单个空格分隔,可以用更简洁的分组拼接写法:
text = "can we check this quickly now" word_list = text.split() # 每2个单词为一组,组内用空格连接,组之间用@连接 result = '@'.join(' '.join(word_list[i:i+2]) for i in range(0, len(word_list), 2)) print(result) # 输出:can we@check this@quickly now
内容的提问来源于stack exchange,提问作者nOObda
相关产品推荐
相关产品推荐

