我想了解如何将列表作为参数传递给函数时进行处理。所以我所做的是以下几点:传递给函数时列表发生了什么?
我初始化列表:
ll = [1,2,3,4]
和定义一个函数:
def Foo(ar):
ar += [11]
我通过列表的功能:
Foo(ll)
当我打印它时,我得到:
print ll # [1, 2, 3, 4, 11] #case(1)
到目前为止好。
现在我为了重新设置列表,使得它只有一个元素修饰功能:
def Foo(ar):
ar = [11]
我回忆的语法:
Foo(ll)
,当我重新打印,它导致在同一个列表中:
print ll # [1, 2, 3, 4] # case(2)
我以为列表通过作为参考;所以无论我们对函数内的列表做什么都会改变从主程序传来的原始函数。因此,对于案例(2)我期待以下结果:
print ll # [11] # case(2) expected result
我在这里错过了什么吗?
'ar = [11]'将名称分配给**完全不同的对象**。如果要替换列表的全部内容,请尝试'ar [:] = [11]'。 – jonrsharpe
我发现你选择名称和值('ll'和'11')令人不安... – rodrigo
对于名称和值的选择,我很抱歉。 – rnels12