修改函数中的列表
在函数中使用列表时,了解引用和赋值的概念非常重要。在 Python 中,传递给函数的列表参数接收对原始列表的引用,而不是副本。修改函数内部的列表会直接改变原始列表。
问题说明
考虑以下代码:
<code class="python">def function1(list_arg): a = function2() # returns an array of numbers list_arg = list(a) # Assign a new list to list_arg list1 = [0] * 5 function1(list1) print(list1) # Output: [0, 0, 0, 0, 0]</code>
在此示例中,我们打算用数组 a 的元素修改传递的列表 list1 。但是,该代码不起作用,因为在 list_arg = list(a) 行中,我们将一个新列表分配给 list_arg,这实际上破坏了到 list1 的链接。
解决方案:修改列表元素
要正确修改原始列表,我们需要将新元素分配给其各个元素,而不是重新分配整个列表。这可以使用切片来实现:
<code class="python">list_arg[:] = list(a)</code>
这会将 list(a) 的内容分配给 list_arg 中的所有元素。切片 [:] 选择 list_arg 中的整个元素范围。
结论
在函数中使用列表时,请记住重新分配会替换现有列表,同时修改elements 保留原始列表。使用切片修改列表中的元素,确保原始列表保持不变。
以上是如何在 Python 中修改函数内的列表:重新分配与元素修改?的详细内容。更多信息请关注PHP中文网其他相关文章!