[英]Best way to clear a each list in a nested list in Python?
假設我有一個這樣的嵌套列表
list_1 = [1, 2, 3]
list_2 = ["a", "b", "c"]
li = [list_1, list_2]
如何清除li
中的每個項目,以便list_1
和list_2
也變為空。 我期待類似的東西:
print(li) # Output: [[],[]]
print(list_1) # Output: []
print(list_2) # Output: []
我試過了
for i in range(len(parameters)):
parameters[i] = []
但它並沒有清除list_1
和list_2
您可以使用list.clear
方法就地清空列表並使原始變量生效。 通過僅在其位置分配空列表,原始變量不會被修改,因為您正在創建新列表:
for p in parameters:
p.clear()
這相當於,但更好和更 Pythonic 的版本:
for i in range(len(parameters)):
parameters[i].clear()
@ShadowRanger 評論的補充:
作為一個小附錄,
del p[:]
等效於p.clear()
,並且支持時間更長。 此時,不支持沒有list.clear
的 Python 版本(在 3.3 中添加了.clear
和.copy
方法以與set
和dict
對稱,即使序列可以使用del seq[:]
和seq[:]
已經),我同意p.clear()
更具自我記錄性,但值得指出的是存在另一種方法(p[:] = ()
也是等價的,但比del p[:]
),因為您會在舊代碼中看到它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.