我一直在努力,所以看看这两个代码块是如何不产生相同的K输出(Mutates K,它包含所有字符串,s,最初在K中,使得f(s)返回True,并且没有其他元素)
def f(s):
return 'a' in s
K = ['a','b','a','c']
def satisfiesF(L):
ansList = []
for char in L:
if f(char) == True:
ansList += [char,]
L = ansList
return len(L)
和
def f(s):
return 'a' in s
K = ['a','b','a','c']
def satisfiesF(L):
ansList = []
for char in L:
if f(char) == True:
ansList += [char,]
CloneL = L[:]
for e in CloneL:
if e not in ansList:
L.remove(e)
return len(L)
当我输入print K时,第一个块给出:
['a','b','a','c']
而第二个块给出:
['a','a']
这就是我想要的。但是,我试图理解它产生这种答案的机制。对我说,我可以改变/改变函数的输入,但我不能只是将我的输入重新分配给我想要的。