Skip to main content
 首页 » 编程设计

python之我只想返回列表中的奇数

2025年05月04日14birdshome

我的问题是代码正确地过滤掉了偶数,这正是我想要的,但是它在 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]