我想通过在每个项目之后放置“伟大”来覆盖“魔术师”列表。
如果我使用pop()将新项目分配到新列表,将旧项目设置为空,然后将新名称附加回去,则该方法将起作用。
码:
for great in greatlist:
mages.append(great)
但是,为什么不简单地将其复制工作呢?结果是一个空的“魔法”列表。
mages=greatlist[:]
这里是整个代码:
magicians=['feka','kuka','szuka']
#puts 'the Great' after every list element name
def make_great(mages):
greatlist=[]
while mages:
uj=mages.pop()
greatlist.append(uj + ", the Great")
# for great in greatlist:
# mages.append(great)
mages=greatlist[:]
最佳答案
问题是您正在尝试重新分配mages
。这在python中是错误的,因为变量不是容器,但您必须将它们视为标签:
magicians=['feka','kuka','szuka']
#puts 'the Great' after every list element name
def make_great(mages):
greatlist=[]
while mages:
uj=mages.pop()
greatlist.append(uj + ", the Great")
return greatlist # return the resulting list
magicians = make_great(magicians) #reassign magicians labelling to the new list from function
请注意作用域
greatlist
位于函数内部,因此一旦函数完成,所有不在其上或返回的所有内容都将被丢弃。