函数定义:从整数列表中返回偶数列表

Posted

技术标签:

【中文标题】函数定义:从整数列表中返回偶数列表【英文标题】:Function Definition: Returning a list of even numbers from list of integers 【发布时间】:2016-01-07 21:33:45 【问题描述】:

将函数 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]

vs.(分隔线)

2
4
2
4
6 

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

你的return语句是不是缩进太远了?它不应该与for语句处于同一级别吗?否则,您将始终在循环的第一次迭代时返回,并且始终返回一个零或一个数字的列表。 你是对的,它没有正确缩进。我已接受您的编辑,谢谢。【参考方案2】:

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

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())

【讨论】:

以上是关于函数定义:从整数列表中返回偶数列表的主要内容,如果未能解决你的问题,请参考以下文章

#定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型。其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数)。

内置函数

方案 - 定义定义

python练习 函数2

七函数下

使用开关函数c ++输入正整数或负整数列表以查明数字是偶数还是奇数