【发布时间】:2019-06-03 06:12:05
【问题描述】:
对于列表:[-1, 0, 43, 128, 32],有几种方法可以删除最后一个元素。
list.pop()-
list = list[:-1](不推荐?) del list[-1]- 可能还有更多...
它们都会返回[-1, 0, 43, 128],但是什么是计算密集度最低的,它有什么不同吗?我知道像timeit 这样的模块,我可以用它来为自己测试。但我对不受控制的变量保持警惕,我的非专业知识肯定会削弱结果。同样,字符串、浮点数或布尔值的最佳选择是否不同?多维列表呢?
我不太确定如何控制和测试这些变量,所以我想我会在这里询问是否存在一般层次结构。
不是Difference between del, remove and pop on lists 的重复项
该问题解释了删除方法之间的差异,但没有解决切片问题。它也根本没有解决速度问题。接受的答案模糊地提到了效率,我认为这是解决方案的一部分,但我看不出它如何适合切片。
【问题讨论】:
-
@Mike 那个链接说
poping 是固定的,但是切片会随着列表的长度而缩放?至于平均测试它们,如果我有时间,我可能会在一两个小时内完成。 -
timeit模块旨在执行此类测试。你试过了吗?特别是 IPython 控制台中的%timeit命令使其非常简单。 -
@Mike,啊,第二个答案。我现在看到了!谢谢!
标签: python python-3.x list optimization