以下两个代码中的哪一个更有效? (时间和记忆)。
aList = [0,1,2,3,4,5,6,7,8,9]
for num in aList:
if (num % 2 == 0):
aList.pop(num)
或
aList = [0,1,2,3,4,5,6,7,8,9]
for num in range(10):
if (num % 2 == 0):
aList.pop(num)
所以basiccaly我要问的是“for a list:”和“for num in range(10):”哪个更有效?
答案 0 :(得分:1)
即使你的循环确实有效,pop
也是O(n),所以你的循环非常低效。制作新的过滤列表并将其复制回
aList = [0,1,2,3,4,5,6,7,8,9]
aList[:] = [n for n in aList if n % 2]