首先,可以肯定的是,for 循环遍历时可以修改列表值。
那么问题出在哪?在for 循环中的赋值语句magician='the Great' + magician,这个语句并没有改变列表元素,在for magician in magicians中,magician 只是一个得到了列表元素的值的临时变量,修改这个临时变量并不会影响的列表里的值。
原代码相当于:magician =magicians[i], magician ='theGreat'+magician, 很明显,这里没有影响到列表元素,而是只改变了临时变量。
可以使用以下代码:
for i in range(len(magicians)):
magicians[i] = 'the Great' + magicians[i]
你没有把修改后的添加列表
粗略的示意:
def make_great(m):
m='the Great '+m
print(m)
return m
------------------------------------
ms=[]
ms=[make_great(m) for m in ms]