Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数定义:从整数列表返回偶数列表_Python_List_Function_Variable Assignment_Definition - Fatal编程技术网

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

Python 函数定义:从整数列表返回偶数列表,python,list,function,variable-assignment,definition,Python,List,Function,Variable Assignment,Definition,使用“打印偶数值”功能,输入整数列表,并打印列表中的每个偶数。调用打印偶数值([2,8,1,9,0,19,24])将在shell窗口中生成以下输出: 二, 8. 0 二十四 我的做法是: 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)

使用“打印偶数值”功能,输入整数列表,并打印列表中的每个偶数。调用打印偶数值([2,8,1,9,0,19,24])将在shell窗口中生成以下输出:

二, 8. 0 二十四

我的做法是:

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]
,但有一个错误。另外,如何使我的输出类似于问题?(即

vs(单独行)


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

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

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

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

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

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

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

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

您的return语句缩进是否太远了?它是否应该与for语句处于同一级别?否则,您将始终在循环的第一次迭代中返回,并且始终包含一个由零或一个数字组成的列表。您是对的,它没有正确缩进。我已接受您的编辑,谢谢。您的return语句缩进是否太远了它不应该与for语句处于同一级别吗?否则,在循环的第一次迭代中,您总是返回一个包含零或一个数字的列表。您是对的,它没有正确缩进。我接受您的编辑,谢谢。