简体   繁体   English

如何从列表中删除符合条件的项目

[英]How do I remove items from a list that meet a criteria

I am attempting to identify if an item is even and then removing them from any list and printing the new list我试图确定一个项目是否是偶数,然后将它们从任何列表中删除并打印新列表

def remove_evens(my_list):
    if item in my_list 0 % 2 == 0:
        # how do I remove the specified items?
    return list

Try this:尝试这个:

numbers = [10, 20, 3, 15, 1000, 60, 16]
removed_evens = list(filter(lambda n: n % 2 != 0, numbers))
print(removed_evens)

And function form:和 function 表格:

def removed_evens(numbers):
    return list(filter(lambda n: n % 2 != 0, numbers))

Another logic:另一个逻辑:

def removed_evens(numbers):
    results = []
    for number in numbers:
        if number % 2 != 0:
            results.append(number)
    return results

Which can be reduced to:可以简化为:

def removed_evens(numbers):
    return [number for number in numbers if number % 2 != 0]

Or even more minimal:或者更小:

removed_evens = lambda numbers: [number for number in numbers if number % 2 != 0]
def remove_evens(my_list):
    for item in my_list:
        if item %2 == 0:
            my_list.remove(item)
    return my_list
my_list = [1,2,3,4,5,6]
remove_evens(my_list)
print(my_list)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM