Python[函数中重新引用和变异的区别]

Python[函数中重新引用和变异的区别],python,global-variables,mutation,Python,Global Variables,Mutation,我一直在努力,看看这两个代码块如何不产生相同的K输出(对K进行变异,使其包含所有字符串s,最初在K中,使f(s)返回True,而没有其他元素) 及 当我键入print K时,第一个块给出: ['a','b','a','c'] ['a','a'] 而第二块给出: ['a','b','a','c'] ['a','a'] 这就是我想要的。然而,我试图理解它产生这些答案的机制。对我来说,这意味着我可以变异/更改函数的输入,但我不能仅仅将输入重新分配给我想要的 这是谁写的ansList+=[cha

我一直在努力,看看这两个代码块如何不产生相同的K输出(对K进行变异,使其包含所有字符串s,最初在K中,使f(s)返回True,而没有其他元素)

当我键入print K时,第一个块给出:

['a','b','a','c']
['a','a']
而第二块给出:

['a','b','a','c']
['a','a']

这就是我想要的。然而,我试图理解它产生这些答案的机制。对我来说,这意味着我可以变异/更改函数的输入,但我不能仅仅将输入重新分配给我想要的

这是谁写的
ansList+=[char,]
将由理智的任何人编写
ansList.append(char)
。另请参见
if f(char)==True
vs.just
if f(char):
。我不知道你的困惑是什么:第一个版本添加了与新列表匹配的项目,而第二个版本从旧列表中删除了不匹配的项目。这是谁写的
ansList+=[char,]
将由理智的任何人编写
ansList.append(char)
。另请参见
if f(char)==True
vs.just
if f(char):
。我不确定你的困惑是什么:第一个版本添加了与新列表匹配的项目,而第二个版本从旧列表中删除了不匹配的项目。