从整数列表中返回偶数列表

问题描述 投票:0回答:2

我应该编写函数

print_even_values
,输入一个整数列表,该列表打印列表中的每个偶数。调用
print_even_values([2, 8, 1, 9, 0, 19, 24])
将在 shell 窗口中产生以下输出:

2
8
0
24

我的做法是:

def print_even_numbers(n: list) -> list:
    '''Return a list of even numbers given a list of integers'''
    for x in list:
        if x % 2 == 0:
            return(x)

assert print_even_numbers([2, 4, 2, 4, 5, 6]) == [2, 4, 2, 4, 6]
assert print_even_numbers([4, 1, 3, 2, 5, 9]) == [4, 2]

但是有一个错误。另外,如何使我的输出与要求相似?即

[2, 4, 2, 4, 6]

2
4
2
4
6
python list function
2个回答
0
投票

我认为问题是当它是偶数时你返回一个数字,而不是返回偶数列表。您应该在偶数时存储一个数字,然后返回列表:

def print_even_numbers(number_list):
    even_numbers = [] # define the empty list of even numbers
    for number in number_list:
        if number % 2 == 0: # check if number is even
            even_numbers.append(number) # if it is, store it
    return even_numbers # Last step returns the list of even numbers

0
投票

你也可以使用更长的版本,如下所示:

def generate_evens():
    result = []
    for x in range(1, 50):
        if x % 2 == 0:
            result.append(x)
    return result


print(generate_evens())

你有一个简短的使用这个:

def generate_evens1():
    return [x for x in range(1, 50) if x % 2 == 0]


print(generate_evens1())
© www.soinside.com 2019 - 2024. All rights reserved.