Python列表不反映变量更改

Python列表不反映变量更改,第1张

Python列表不反映变量更改

Python变量包含对 值的 引用。因此,在定义

palin
列表时,您传入所引用的值
polly
,而不是变量本身。

您应该将值想象为气球,变量是绑定到那些气球的线程

"alive"
是一个气球,
polly
只是该气球的一个线程,并且
palin
列表具有与该气球相关的
不同 线程。在python中,列表只是一系列线程,所有线程均从0开始编号。

接下来的 *** 作是将

polly
字符串绑定到新的气球上
"dead"
,但是列表仍然保留在与
"alive"
气球相连的旧线程上。

您可以

"alive"
通过按索引重新分配列表以引用每个线程,从而将该线程替换为列表中保留的线程。在您的示例中,该线程是
1

>>> palin[1] = polly>>> palin['parrot', 'dead']

在这里,我简单地将

palin[1]
线程
polly
绑定到相同的东西,无论可能是什么。

请注意,在任何蟒集合,如

dict
set
tuple
,等仅仅是线程的集合了。其中一些可以将其线程换成不同的线程,例如列表和字典,这就是使python中的某些东西“可变”的原因。

另一方面,字符串是 不可 变的。一旦定义了类似

"dead"
或的字符串
"alive"
,它就是 一个
气球。您可以将其与线程(变量,列表或任何其他东西)绑定在一起,但是不能替换其中的字母。您只能将该线程绑定到一个 全新的 字符串。

python中的大多数东西都可以像气球一样。整数,字符串,列表,函数,实例,类都可以绑定到变量中,也可以绑定到容器中。

您可能还想阅读Ned
Batchelder关于Python名称的论文



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5645718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存