Python [重新引用和函数中的突变之间的区别]

时间:2015-07-12 21:37:55

标签: python global-variables mutation

我一直在努力,所以看看这两个代码块是如何不产生相同的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']

这就是我想要的。但是,我试图理解它产生这种答案的机制。对我说,我可以改变/改变函数的输入,但我不能只是将我的输入重新分配给我想要的。

0 个答案:

没有答案