*args returns a list containing only those arguments that are even
Question:
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)
Answers:
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]
This also could be helpful, however, the previous comment looks more advanced:
def myfunc(*args):
lista = []
for i in list(args):
if not i % 2:
lista.append(i)
return lista
Pick evens
def myfunc(*args):
abc = []
for n in args:
if n%2==0:
abc.append(n)
return abc
def myfunc(*args):
x=[]
for i in list(args):
if i%2==0:
x.append(i)
return x
def myfunc(*args):
mylist = []
for x in list(args):
if x % 2 == 0:
mylist.remove(x)
return mylist
def myfunc(*args):
even=[]
for n in args:
if n %2==0:
even.append(n)
else:
pass
return even
myfunc(1,2,3,4,8,9)
def myfunc(*args):
#solution 1
# Create an empty list
mylist = []
for number in args:
if number %2 == 0:
mylist.append(number)
else:
pass
# return the list
return mylist
#solution 2
# Uses a list comprehension that includes the logic to find all evens and the list comprehension returns a list of those values
# return [n for n in args if n%2 == 0]
You need to create an empty list to contain the even numbers. Also convert your arguments to a list. Then append the even numbers to the newly created list.
def myfunc(*args):
new_list = []
for num in list(args):
if num % 2 == 0:
new_list.append(num)
else:
pass
return new_list
def myfunc(*args):
return [x for x in args if not x&1]
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)
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]
This also could be helpful, however, the previous comment looks more advanced:
def myfunc(*args):
lista = []
for i in list(args):
if not i % 2:
lista.append(i)
return lista
Pick evens
def myfunc(*args):
abc = []
for n in args:
if n%2==0:
abc.append(n)
return abc
def myfunc(*args):
x=[]
for i in list(args):
if i%2==0:
x.append(i)
return x
def myfunc(*args):
mylist = []
for x in list(args):
if x % 2 == 0:
mylist.remove(x)
return mylist
def myfunc(*args):
even=[]
for n in args:
if n %2==0:
even.append(n)
else:
pass
return even
myfunc(1,2,3,4,8,9)
def myfunc(*args):
#solution 1
# Create an empty list
mylist = []
for number in args:
if number %2 == 0:
mylist.append(number)
else:
pass
# return the list
return mylist
#solution 2
# Uses a list comprehension that includes the logic to find all evens and the list comprehension returns a list of those values
# return [n for n in args if n%2 == 0]
You need to create an empty list to contain the even numbers. Also convert your arguments to a list. Then append the even numbers to the newly created list.
def myfunc(*args):
new_list = []
for num in list(args):
if num % 2 == 0:
new_list.append(num)
else:
pass
return new_list
def myfunc(*args):
return [x for x in args if not x&1]