一直调不通这个东西,我想要的是不产生新对象,在原对象上
操作,所以不考虑filter...
原来喜欢这样写:
a = [1,2,3,4,5,6]
def remove(alist):
lenoflist = len(alist)
for i in range(alist):
if i % 2 == 0:
del i
remove(a)
却一直不对,唉...
问了一下群里的高手,原来:
del i 只是释放i这个变量的内存空间
So.这样写就好了,剽窃了别人的创意,不过,学习学习,呵呵...
remove.py:
#!/usr/bin/env pyhton
a = [1,2,3,4,5,6]
def remove(alist):
for i in alist:
if i % 2 == 0:
del alist[alist.index(i)]
print alist
remove(a)
还有一种:
def test(l):
i = 0
while i<len(l):
if l[i]%2==0:
l.pop(i)
else:
i = i+1
本文探讨了在Python中高效地从列表中删除偶数元素的方法,并提供了多种实现方式,包括使用del语句、列表推导式和pop方法。重点在于优化内存管理和减少不必要的变量创建。
996





