我一直在努力,所以看看这两个代码块如何不产生相同的 K 输出(变异 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']
这就是我想要的。但是,我试图了解它产生此类答案的机制。对我来说,这是说我可以改变/更改函数的输入,但我不能只是将我的输入重新分配给我想要的。