Discuss / Python / 问问

问问

Topic source

list=[1,4]

a=(2,3,list)

list=[8,9]

print(a)

运行结果是:

E:\exp>python a1.py

(2, 3, [1, 4])

和想象的不太一样

我去调试里面看了,list确实变了,但是为啥输出不变我也不清楚

list=[1,4]

a=(2,3,list)

list=[8,9]

a=(2,3,list)

print(a)

print(list)

重新定义一下a这个tuple就好了

浪过扬帆

#4 Created at ... [Delete] [Delete and Lock User]

这个廖大讲过的,好好看看变量那一节

偶尔如同

#5 Created at ... [Delete] [Delete and Lock User]

这里我发现一个问题

classmates = ['A',"B",'C']

l = (1,classmates)

classmates[0] = [3,4,5]

print(l)

>>>(1, [[3, 4, 5], 'B', 'C'])

当你只修改list里的一个值的时候,tuple里的list就会变,而按照你的方法,把整个list重新赋值的时候,输出的内容就不会变,有点奇怪

SuiyuanX

#6 Created at ... [Delete] [Delete and Lock User]

变量a在重定义list之前,所以未修改

list=[1,4]这个代表也是指向内存[1,4]的。及list不是[1,4]是指向。如果list=[8,9]就是指向[8,9]了。

list=[1,4]

a=(2,3,list)

list.pop()

list.pop()

list.append(8)

list.append(9)

print(a)

运行结果是:

E:\exp>python a1.py

(2, 3, [8, 9])


  • 1

Reply