我的问题是代码正确地过滤掉了偶数,这正是我想要的,但是它在 7 处停止并且不显示数字 9,这正是我希望它做的。我试过检查我的代码,但我似乎找不到问题
def remove_even(numbers) :
new_list = []
for i in range(0,len(numbers)-1) :
if i % 2 != 0 :
new_list.append(i)
return new_list
l = [1,2,3,4,5,6,7,8,9,10]
print(remove_even(l))
请您参考如下方法:
你应该直接循环遍历你的值而不是索引
for i in numbers:
否则,如果您想使用 range,则必须索引到您的 list
for i in range(0, len(numbers)):
if numbers[i] % 2 != 0 :
new_list.append(numbers[i])
为简洁起见,列表理解非常适合此类任务
>>> new_list = [num for num in l if num % 2 == 1]
>>> new_list
[1, 3, 5, 7, 9]
