如何解决Python 列表与变量修改内存差异
问题
- 我想了解为什么可以在不返回 python 的情况下修改列表,而变量不能。例如:
def var_modify(a,b): a += b def list_modify(a,b): a.append(b) str_1 = "hello" var_modify(str_1,"world") print(str_1) # Output: "hello" int_1 = 2 var_modify(int_1,5) print(int_1) # Output: 2 list_1 = [1,2,3] list_modify(list_1,4) print(list_1) # Output: [1,3,4] var_modify(list_1,[5]) print(list_1) # Output: [1,4,5]
- 此外,我认为了解从函数返回列表是否比在没有返回语句的情况下修改函数中的列表效率更高或更低(或从内存角度更改内容)会很有用。例如:
def modify_list_1(a,b): a.append(b) def modify_list_func2(a,b): return a.append(b) list_1 = [1,3] modify_list_1(list_1,4] list_1 = modify_list_2(list_1,5) print(list_1) # Output: [1,5] modify_list_2(list_1,6) print(list_1) # Output: [1,5,6] # Note: list_1 is still changed when assignment operator is not used
注意事项
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。