在 Python 中清除列表
-
使用
clear()
清除 Python 中的列表 - 在 Python 中设置一个空的列表值来清除一个列表
-
在 Python 中使用
del
和切片运算符:
清除列表 -
将整个列表与
0
相乘以清除 Python 中的列表
本教程将演示清除 Python 列表的不同方法。
使用 clear()
清除 Python 中的列表
在 Python 中清除列表的最简单,最明显的方法是使用 clear()
方法,这是 Python 列表中的内置方法。
例如,使用整数值初始化列表,然后使用 clear()
函数删除所有值。
lst = [1, 6, 11, 16]
print(lst)
lst.clear()
print(lst)
输出:
[1, 6, 11, 16]
[]
在 Python 中设置一个空的列表值来清除一个列表
清除现有列表变量的另一种方法是使用一对空的方括号 []
为该变量设置一个空列表。
lst = [1, 6, 11, 16]
print(lst)
lst = []
print(lst)
输出:
[1, 6, 11, 16]
[]
尽管这样做也可以快速清除列表,但这不会从内存中删除列表的值。而是创建一个列表的新实例,并指向新创建的实例。
如果没有其他变量指向列表变量的先前值,则这些变量将不可访问并且将用于垃圾回收。
如果我们使两个变量指向同一列表,并在之后将其中一个变量设置为空列表,则可以清楚地看出这种情况。
lst = [1, 6, 11, 16]
lst2 = lst
print(lst)
print(lst2)
lst = []
print(lst)
print(lst2)
输出:
[1, 6, 11, 16]
[1, 6, 11, 16]
[]
[1, 6, 11, 16]
第二个列表 lst2
被设置为 lst
的值,但是即使在将新的 lst
值设置为空列表之后,列表 lst2
仍然保留以前的旧值。在这种情况下,先前的值不适合进行垃圾回收,因为仍然有指向它的变量。
在 Python 中使用 del
和切片运算符:
清除列表
Python 关键字 del
用于完全删除内存中的对象及其引用。del
关键字用于删除 Python 对象,可迭代对象,列表的一部分等。
Python 中的冒号运算符:
是用于将数组切成可接受两个整数参数的部分的运算符。
而:
操作符则是用来获取列表的实际引用进行删除。
lst = [1, 6, 11, 16]
lst2 = lst
print(lst)
print(lst2)
del lst[:]
print(lst)
print(lst2)
另一个不使用 del
关键字即可完成此操作的解决方案是将列表设置为空列表,但使用:
运算符将以前的引用替换为空列表。
lst = [1, 6, 11, 16]
lst2 = lst
print(lst)
print(lst2)
lst[:] = []
print(lst)
print(lst2)
两种解决方案的输出如下:
[1, 6, 11, 16]
[1, 6, 11, 16]
[]
[]
从前面的示例中可以注意到,将现有列表变量设置为空列表实际上并不会删除先前的值。这个解决方案将完全删除之前的值,即使其他变量指向主列表中相同的值引用。
将整个列表与 0
相乘以清除 Python 中的列表
清除列表的最快方法是将整个列表乘以 0
。将列表变量本身与 0
相乘将清除列表并清除其先前在内存中的引用。
lst = [1, 6, 11, 16]
lst2 = lst
print(lst)
print(lst2)
lst *= 0
print(lst)
print(lst2)
输出:
[1, 6, 11, 16]
[1, 6, 11, 16]
[]
[]
在所有提到的解决方案中,此方法是执行最快的解决方案。
总之,清除列表的最明显方法是在列表中使用内置的 clear()
函数,尽管执行最快的解决方案是将列表变量与值 0
相乘。
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn