【发布时间】:2011-04-11 06:28:29
【问题描述】:
这是我的代码:
a = [1,2,3,43,43,43]
count = a.count(43)
if count > 0:
for i in range(count):
a.remove(43)
print a
有没有更简单的方法来实现这一点?
【问题讨论】:
-
这也不是一个很好的算法。每次您执行
a.remove(43)时,Python 都会再次从列表的开头开始,因此您正在一遍又一遍地测试值 [1,2,3]。在大 O 表示法中,这是 O(n^2)。下面使用简单列表理解的答案是 O(n)