
函数交互疑惑解惑
作为文科零基础的小白,在学习 python 函数时可能会遇到一些疑惑。本文将解析一个具体的问题,帮助你深入理解函数的用法。
问题
在以下代码中,希望先通过函数 make_great 修改列表 names,再使用函数 show_magicians 显示修改后的结果。但是实际运行时,names 并未被修改。这是为什么?
立即学习“Python免费学习笔记(深入)”;
def make_great(names): for name in names: name_1 = "the great " + name.title() print(name_1)def show_magicians(names): for name in names: print(name.title())names = ["a", "b", "c", "tutu", "mumu"]make_great(names)show_magicians(names)
解答
在这个例子中,函数 make_great 想要修改 names 列表,但它并不会实际修改原有列表。它只是在循环内部创建了一个新的变量 name_1,并向其中添加了修饰符。
要解决这个问题,一种方法是使用 python 的 map 函数。map 函数将一个函数应用于可迭代对象的每个元素,并返回一个新对象。我们可以利用它来修改 names 列表。
def make_great(names): return map(lambda name: "the Great " + name.title(), names)def show_magicians(names): for name in names: print(name.title())names = ["A", "b", "c", "tutu", "mumu"]show_magicians(make_great(names))
在这个修改后的代码中,make_great 函数使用 map 函数返回一个新的对象,该对象包含了修改后的名称。然后将该新对象传递给 show_magicians 函数,从而实现了函数之间的交互。
以上就是Python 函数修改列表,为什么原列表没有变化?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1353062.html
微信扫一扫
支付宝扫一扫