Warm tip: This article is reproduced from serverfault.com, please click

*args returns a list containing only those arguments that are even

发布于 2018-11-20 01:46:30

I'm learning python and in an exercise I need to write a function that takes an arbitrary number of arguments and returns a list containing only those arguments that are even.

My code is wrong I know: (But what is wrong with this code ?)

def myfunc(*args):
    for n in args:
        if n%2 == 0:
            return list(args)
myfunc(1,2,3,4,5,6,7,8,9,10)
Questioner
Aarón Más
Viewed
11
Austin 2018-11-20 09:52:51

Do a list-comprehension which picks elements from args that matches our selection criteria:

def myfunc(*args):
    return [n for n in args if n%2 == 0]

print(myfunc(1,2,3,4,5,6,7,8,9,10))
# [2, 4, 6, 8, 10]