问题:
我定义一个全局变量q并初始化q=[1,2,3,4,5,6]
我写了个函数
def a(x,num):
c=[]
c.extend(x)
c[num]=num
return c
def b(q):
for i in range(5):
var=i
d=a(q,i)
print d
发现输出的d不仅仅是结尾添加一个数,中间的数的变化也不一样,是不是全局变量q发生变化了
我们用你的程序加了点打印下面是输出:
代码:
def a(x,num):
c=[]
c.extend(x)
c[num]=num
return c
def b(q):
for i in range(5):
var=i
d=a(q,i)
print "d",d
print "q",q
print d
输出:
d [0, 2, 3, 4, 5, 6]
q [1, 2, 3, 4, 5, 6]
d [1, 1, 3, 4, 5, 6]
q [1, 2, 3, 4, 5, 6]
d [1, 2, 2, 4, 5, 6]
q [1, 2, 3, 4, 5, 6]
d [1, 2, 3, 3, 5, 6]
q [1, 2, 3, 4, 5, 6]
d [1, 2, 3, 4, 4, 6]
q [1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 4, 6]
首先我不知道你的输出是个什么样子,但是在我看来,这个输出在正常不过了,我们只分析最后一次,最后一次的i值为4,这样在经过A函数处理时
只是把list的第4位的值修改为4 而已,这样最后一次的输出就是:[1, 2, 3, 4, 4, 6]