我想写一个for
循环来测试list
上的两个函数。第一个返回int,第二个返回boolean
。如果boolean == False
函数应该从列表中删除元素,那么在调用函数L之后,最后应该发生了变化。下面是一个例子。你知道吗
def f(i):
return i + 2
def g(i):
return i > 5
L = [0, -10, 5, 6, -4]
def applyF_filterG(L, f, g):
for i in L:
if g(f(i)) == False:
L.remove(i)
L = [5, 6]
我的问题是,对于上面写的函数,我得到了L = [-10, 5, 6]
,因为如果i
被移除,那么i+1
会因为移除的元素而变成i+2
。有人知道怎么解决这个问题吗?非常感谢!你知道吗
在对列表进行迭代时,决不能从列表中删除元素。 只需使一个新列表L1等于L,并从L中删除元素,然后在L1上迭代。你知道吗
您能否通过生成另一个列表来简化此过程:
或者类似的?你知道吗
相关问题 更多 >
编程相关推荐