如何用循环求出一个任意列表中有多少个偶数,需要把所有偶数组成一个新的list,要满足列表为空列表的情况
def get_even(my_list):
if len(my_list) == 0: return 0, []
even_list = [i for i in my_list if i%2 == 0]
return len(even_list), even_list
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_qty, even_list = get_even(my_list)
print(f'列表{my_list}中有{even_qty}个偶数')
print(f'列表{my_list}中所有偶数组成的列表为:{even_list}')
用循环求是这样的:
>>> from random import randint as rnd
>>> lst1 = [rnd(0,10) for _ in range(rnd(1,101))]
>>> lst1
[6, 9, 3, 10, 4, 7, 10, 0, 6, 0]
>>> lst2 = []
>>> count = 0
>>> for i in lst1:
if i%2==0:
count += 1
lst2.append(i)
>>> print(count, lst2)
7 [6, 10, 4, 10, 0, 6, 0]
另外除了用推导式方便求解外,还有一个filter()函数也能求解:
>>> lst1 = [6, 9, 3, 10, 4, 7, 10, 0, 6, 0]
>>> lst2 = [*filter(lambda x:not x%2,lst1)]
>>> lst2
[6, 10, 4, 10, 0, 6, 0]