【发布时间】:2015-09-19 03:28:17
【问题描述】:
尝试创建一个删除奇数的函数。当我运行这段代码时,它只打印出 [2,3,4,5,6,7,8,9]。这是因为第一次迭代后返回取消了我的循环吗?如果是这样,我该如何修改它以运行循环并打印出一个删除所有奇数的列表?
def evens(numbers):
for i in range(len(numbers)):
if numbers[i] % 2 != 0:
del numbers[i]
return numbers
numberlist = [1,2,3,4,5,6,7,8,9]
print evens(numberlist)
在你们都跳到对我重复的问题投反对票之前……我在问为什么我的特定代码被破坏了。这发现了一个有趣的问题,那就是在循环中使用 del 方法意味着您实际上需要反向迭代。
【问题讨论】:
标签: python