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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值