请教一个返回值的问题~

请教一个返回值的问题~

是这样一个问题,A本来是一个含有很多元素的list,想进行函数运算以后将所得值返回给原list,也就是A,但是运行以后A的值是空的[],但是如果把最下面的A=C改为return C的话就可以返回运算以后的值,不明白这是怎么回事儿~

def mate(A):
        C = []
        for i in range(len(A)/2):
                B = random.sample(A,2)
                for j in range(2):
                        A.__delitem__(A.index(B[j]))
                chromosome_crossover(B[0],B[1])
                mutate(B[0])
                mutate(B[1])
                C.extend(B)
        A = C
你这里都把a的值删掉了, 最后a当然是空表.

A.__delitem__(A.index(B[j]))
A和C都是局部变量,当你的函数结束后,A和C也就结束了。
如果你有如下的语句:D = mate(iterm)
此时D就为None。

我也是菜鸟,估计是以上原因。

对哦,没想到在function里面定义的A是一个局部变量~呵呵~谢谢~