我对python非常陌生,我只是不明白为什么'a‘的值在附加了’橙色‘之后也不会改变。len(x)变成4,但“a”应该是len(x),保留3。谢谢你的时间。密码-
x = ['apple', 'banana', 'cherry']
a = len(x)
print('list: ',x)
print('Len_x:',(len(x)))
print('a :',a)
x.append('orange')
print('list: ',x)
print('Len_x:',(len(x)))
print('a :',a)发布于 2020-09-06 10:41:46
大多数的答案解释了如何部分。让我解释一下python为什么会这样。
Python和所有其他语言一样,自上而下地读取脚本。这意味着,如果不显式更改,代码的上部存储或更改的内容将保持不变。
请考虑代码的第一部分:
x = ['apple', 'banana', 'cherry']
a = len(x)
print('list: ',x)
print('Len_x:',(len(x)))
print('a :',a)在这种情况下
现在考虑代码的第二部分:
x.append('orange')
print('list: ',x)
print('Len_x:',(len(x)))
print('a :',a)要纠正这种情况,您可以这样重新分配:
a = len (x)现在python将重新计算修改后的列表的长度,并将其重新分配给一个。因此python将计算新值(4);将其存储在RAM中;并引用一个指向值(4)。由于原始值(3)将不再被引用,该值(3)将被python丢弃。(最终由垃圾收集器从RAM中删除)
发布于 2020-09-06 09:49:34
我没有足够的声誉来评论:你必须改变一个勇士的价值,然后价值就会改变。
x = ['apple', 'banana', 'cherry']
a = len(x)
print('list: ',x)
print('Len_x:',(len(x)))
print('a :',a)
x.append('orange')
#Add this to change for example:
a = len(x)
print('list: ',x)
print('Len_x:',(len(x)))
print('a :',a)发布于 2020-09-06 09:51:08
答案很简单:
x = ['apple', 'banana', 'cherry']
a = len(x)
print('list: ',x)
print('Len_x:',(len(x)))
print('a :',a)
x.append('orange')
a = len(x) # Note this extra line.
print('list: ',x)
print('Len_x:',(len(x)))
print('a :',a)额外的行用于改变a的值。在开始时,a= len(x)使a= 3,因为len(x) =3。然而,在len(x)变成4之后,我们必须再次将len(x)的值赋给a(即make a= len(x))。不这样做意味着变量a停留在3。
Python程序和几乎所有其他编程语言都自上而下运行。一旦python运行了一个特定的行,它就会继续向下移动,而不会重复这一行(除非您特别要求Python解释器这样做)。
https://stackoverflow.com/questions/63762759
复制相似问题