Python给列表姓名加'the Great'前缀失效且IDE提示变量未使用怎么办
提示含义解释
你写的names = great_magicians这行代码里,names是函数的局部形参变量,你给它重新赋值之后,整个函数逻辑里没有再使用这个新值,既没有返回它也没有用它做后续计算,属于无意义的无效操作,所以IDE会给出这个提示。
另外你代码不生效的核心原因是:Python中直接给函数形参名重新赋值,不会改变外部传入的原始列表变量指向的内容,只是让函数内部的局部names变量指向了新的列表对象,外部的原列表完全没被修改。
修复方案
你可以选两种常用实现方式:
方案1:直接修改传入的原列表
把最后一行的赋值改为切片赋值,直接修改原列表的所有元素,不需要返回值:
def make_great(names): great_magicians = [] for name in names: great_magicians.append("the Great " + name) names[:] = great_magicians
调用示例:
magicians = ["张三", "李四", "王五"] make_great(magicians) # 此时magicians变量已经被修改为带前缀的列表
方案2:返回修改后的新列表
直接把处理好的列表作为返回值返回,调用时用变量接收返回结果:
def make_great(names): great_magicians = [] for name in names: great_magicians.append("the Great " + name) return great_magicians
调用示例:
magicians = ["张三", "李四", "王五"] magicians = make_great(magicians)
内容的提问来源于stack exchange,提问作者user11308707
相关产品推荐
相关产品推荐

