清算清单的不同方式

2024-04-26 21:14:56 发布

您现在位置:Python中文网/ 问答频道 /正文

当您想要清除Python中的列表时,有没有理由做比这两行中的一行更复杂的事情?

old_list = []
old_list = list()

我问的原因是我刚在运行代码中看到这个:

del old_list[ 0:len(old_list) ]

Tags: 代码列表len原因事情oldlistdel
3条回答

执行alist = []不会清除列表,只会创建一个空列表并将其绑定到变量alist。如果旧列表具有其他变量绑定,则它仍将存在。

要在适当的位置清除列表,可以使用以下任何方法:

  1. alist.clear() # Python 3.3+, most obvious
  2. del alist[:]
  3. alist[:] = []
  4. alist *= 0 # fastest

有关详细信息,请参见Mutable Sequence Types文档页。

有一种非常简单的方法可以清除python列表。使用del list_name[:]。

例如:

>>> a = [1, 2, 3]
>>> b = a
>>> del a[:]
>>> print a, b
[] []

清除一个列表将影响同一列表的所有其他引用。

例如,此方法不影响其他引用:

>>> a = [1, 2, 3]
>>> b = a
>>> a = []
>>> print(a)
[]
>>> print(b)
[1, 2, 3]

但这一个确实:

>>> a = [1, 2, 3]
>>> b = a
>>> del a[:]      # equivalent to   del a[0:len(a)]
>>> print(a)
[]
>>> print(b)
[]
>>> a is b
True

你也可以:

>>> a[:] = []

相关问题 更多 >