对于我的编程类,我需要创建一个以字符串和两个字母作为参数的程序。每当第一个字母出现在字符串中时,它将替换为第二个字母。我可以通过将最终字符串放入列表来完成此操作。但是,我们的教授说他希望它是一个字符串,而不是一个列表。如果最终结果出现在列表中,下面显示的代码就是我用来使程序工作的代码。
def str_translate_101(string, x, y):
new_list = []
for i in string:
if i == x:
new_list.append(y)
if i != x:
new_list.append(i)
return new_list
我试图制作一个输出字符串的地方,但它只返回第一个字母而程序会停止(我假设因为“返回”而发生)
def str_translate_101(string, old, new):
for i in string:
if i == old:
return new
else:
return i
然后我尝试使用print函数,但这也没有帮助,因为当我运行该函数时没有输出。
def str_translate_101(string, old, new):
for i in string:
if i == old:
print(new)
else:
print(i)
任何帮助将不胜感激。 结果如何工作的一个例子如下:
str_translate_101('abcdcba','a','x')---> 'xbcdcbx'
答案 0 :(得分:3)
您可以使用join
将列表合并为字符串:
def str_translate_101(string, x, y):
new_list = []
for i in string:
if i == x:
new_list.append(y)
else:
new_list.append(i)
return ''.join(new_list)
或使用单行
str_tranlsate_101 = str.replace
答案 1 :(得分:0)
最简单的解决方案是,不是将字符存储在列表中,而是简单地声明一个空字符串,并在'if'块中使用扩充的'+ ='运算符将字符附加到字符串。例如。 如果我== x: concat_str + = y
至于返回,基本上,它将突破for循环并返回到调用函数的位置。这是因为它只有1个目标,一旦实现它就不会费心去处理任何进一步的代码,只需回到函数调用的地方。