簡體   English   中英

在 Python 中清除嵌套列表中的每個列表的最佳方法?

[英]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_1list_2也變為空。 我期待類似的東西:

print(li) # Output: [[],[]]
print(list_1) # Output: []
print(list_2) # Output: []

我試過了

for i in range(len(parameters)):
        parameters[i] = []

但它並沒有清除list_1list_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方法以與setdict對稱,即使序列可以使用del seq[:]seq[:]已經),我同意p.clear()更具自我記錄性,但值得指出的是存在另一種方法( p[:] = ()也是等價的,但比del p[:] ),因為您會在舊代碼中看到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM