python清空列表clear_如何在Python中清空列表?
似乎很“骯臟”以這種方式清空列表:
while len(alist) > 0 : alist.pop()
是否存在明確的方法?
#1樓
list = []
將list重置為空列表。
請注意,通常您不應list_保留的函數名稱,例如list ,它是列表對象的構造函數-例如,可以使用lst或list_代替。
#2樓
實際上,這將從列表中刪除內容,但不會用新的空列表替換舊標簽:
del lst[:]
這是一個例子:
lst1 = [1, 2, 3]
lst2 = lst1
del lst1[:]
print(lst2)
為了完整起見,切片分配具有相同的效果:
lst[:] = []
它也可以用于縮小列表的一部分,同時替換一部分(但這超出了問題的范圍)。
請注意,執行lst = []不會清空列表,只是創建一個新對象并將其綁定到變量lst ,但是舊列表仍將具有相同的元素,并且如果具有其他變量綁定,效果將顯而易見。
#3樓
您可以嘗試:
alist[:] = []
這意味著:在列表[] (0個元素)在位置[:]處拼接(所有索引從頭到尾)
[:]是切片運算符。 有關更多信息,請參見此問題 。
#4樓
您可以使用的另一個簡單代碼(取決于您的情況)是:
index=len(list)-1
while index>=0:
del list[index]
index-=1
您必須在列表的長度處開始索引,然后相對于索引在0處向前,向后前進,因為這將使您最終獲得的索引等于列表的長度,并且只將其切成兩半。
另外,請確保while行上有一個“大于或等于”符號。 省略它會使您剩下list [0]。
#5樓
如果您運行的是Python 3.3或更高版本,則可以使用list的clear()方法,該方法與dict , set , deque和其他可變容器類型的clear()并行:
alist.clear() # removes all items from alist (equivalent to del alist[:])
按照鏈接的文檔頁面,也可以使用alist *= 0來實現。
總結起來,有四種等效的方法可以就地清除列表(與Python的Zen完全相反!):
alist.clear() # Python 3.3+
del alist[:]
alist[:] = []
alist *= 0
總結
以上是生活随笔為你收集整理的python清空列表clear_如何在Python中清空列表?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在要求输入数字处找到非数字字符_剑指 O
- 下一篇: python修改列表中字典内的值_pyt