所以我在做一个相当简单的任务。 我有一份魔术师名单:
magicians_1 = ["Merlin","Harry Potter","Sabrina"]
魔术师表演的目的是打印出魔术师的名字:
def show_magicians(magicians):
for magician in magicians:
print(magician)
但我的目标是编写一个函数,通过在名称末尾添加“the Great”来更改魔术师的名称:
def make_great(magicians):
for magician in magicians:
magician = magician.replace(magician, magician + " the Great")
return(magician)
这就是我想到的。但是,如果我调用函数make\u great with the list machers\u 1,然后调用show\u machers()with machers\u 1,则名称保持不变。你知道吗
如果我在make\ u great()中打印()魔术师而不是返回它,它会打印出正确的名称。但这并不是功能的目标。我想永久改变名字。你知道吗
所以我的问题是,我怎样才能改变名字,打印出正确的结果,通过调用显示魔术师?你知道吗
这里有几个问题:
for i in range(len(magicians)): magicians[i] = magicians[i] + ' the Great'
这是因为您正在使用for…in循环。这意味着
magician
是位于magicians[i]
的项的副本。要修改数组中的项,需要使用索引引用原始数组。你知道吗其他人已经回答了为什么您原来的解决方案不起作用。这里是另一个可行的解决方案的例子,这个使用列表理解。你知道吗
相关问题 更多 >
编程相关推荐