gpt4 book ai didi

python - 对于列表 : del n 中的 n

转载 作者:行者123 更新时间:2023-11-28 19:49:25 25 4
gpt4 key购买 nike

当我遍历一个列表时,我在循环中给列表元素的名称显然直接依次引用每个元素,如下所示:

>>> a = [1, 2, 3]
>>> for n in a:
... print n is a[a.index(n)]
True
True
True

那么为什么这似乎没有做任何事情呢?

>>> for n in a: del n
>>> a
[1, 2, 3]

如果我尝试 del a[a.index(n)],我会得到奇怪的行为,但至少这是我能理解的行为 - 每次我删除一个元素时,我都会缩短列表,更改其他元素的索引,所以我最终删除了列表中的所有其他元素:

>>> a = range(10)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> for n in a: del a[a.index(n)]
>>> a
[1, 3, 5, 7, 9]

很明显,我可以在迭代时从列表中删除。那么,当我尝试在循环内 del n 时发生了什么?是否有任何内容被删除?

最佳答案

在任何 for n in X 语句的 block 内,n 指的是名为 n 的变量本身,而不是任何“您迭代的最后一个值在列表中的位置”。因此,您的循环正在做的是重复将变量 n 绑定(bind)到从列表中获取的值,然后立即再次解除对同一变量的绑定(bind)。 del n 语句只影响局部变量绑定(bind),而不影响列表。

关于python - 对于列表 : del n 中的 n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19718929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com