Python3如何将字符串内空格替换为另一字符串的对应字符
问题解答
原代码错误原因
- Python中字符串是不可变类型,
str.replace()方法不会修改原字符串,只会返回替换后的新字符串,原代码没有接收该返回值,所以string1始终没有发生变化。 - 双层循环逻辑不符合需求:每次遇到空格都会遍历整个string2,无法实现「第一个空格替换为a、第二个替换为b、第三个替换为c」的按顺序对应替换效果。
- 直接遍历字符串字符无法准确定位替换位置,也无法和string2的字符索引对应。
正确实现代码
推荐初学者用逻辑清晰的可变列表+索引指针的写法:
string1 = "A B C " string2 = "abc" # 将字符串转为列表方便修改 str1_list = list(string1) # 记录当前要使用的string2字符的索引 s2_index = 0 result = [] for char in str1_list: if char == " " and s2_index < len(string2): # 遇到空格且string2还有未使用的字符,执行替换 result.append(string2[s2_index]) s2_index += 1 elif char != " ": # 非空格字符直接保留 result.append(char) # 超出string2长度的多余空格直接丢弃,匹配最终输出需求 # 拼接列表为最终字符串 final_result = ''.join(result) print(final_result)
运行上述代码输出结果为AaBbCc,完全符合需求。
内容的提问来源于stack exchange,提问作者Vanessa
相关产品推荐
相关产品推荐

