Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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

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_Definition - Fatal编程技术网

Python 函数定义:打印偶数整数列表

Python 函数定义:打印偶数整数列表,python,list,function,definition,Python,List,Function,Definition,我试图定义一个函数,它从一个整数列表中返回一个偶数整数列表 def print_even_numbers(n: list): '''Return a list of even numbers given a list of integers''' for x in list: if x % 2 == 0: return(x) 当我尝试上面的代码时,错误显示类型不可编辑 错误的python语法: def print_even_numbers(n: li

我试图定义一个函数,它从一个整数列表中返回一个偶数整数列表

def print_even_numbers(n: list):
   '''Return a list of even numbers given a list of integers'''
   for x in list:
        if x % 2 == 0:
        return(x)
当我尝试上面的代码时,错误显示类型不可编辑

  • 错误的python语法:

    def print_even_numbers(n: list):
    
  • 您不需要括号:

    return(x)
    
  • 错误的缩进。和错误的条件。(并且不要为自己的变量使用保留的python单词,例如
    列表

    for x in list:
    
总结:

def print_even_numbers(n):
    '''Return a list of even numbers given a list of integers'''
    result = []
    for x in n:
        if x % 2 == 0:
            result.append(x)
    return result

print print_even_numbers(range(10))
>>> [0, 2, 4, 6, 8]
最后,更具python风格的方法是使用
yield
实现所需的行为:

def gen_even_numbers(n):
    for x in n:
        if x % 2 == 0:
            yield x

print list(gen_even_numbers(range(10)))
>>> [0, 2, 4, 6, 8]
  • 错误的python语法:

    def print_even_numbers(n: list):
    
  • 您不需要括号:

    return(x)
    
  • 错误的缩进和错误的条件。(不要对自己的变量使用保留的python单词,如
    列表

    for x in list:
    
总结:

def print_even_numbers(n):
    '''Return a list of even numbers given a list of integers'''
    result = []
    for x in n:
        if x % 2 == 0:
            result.append(x)
    return result

print print_even_numbers(range(10))
>>> [0, 2, 4, 6, 8]
最后,更具python风格的方法是使用
yield
实现所需的行为:

def gen_even_numbers(n):
    for x in n:
        if x % 2 == 0:
            yield x

print list(gen_even_numbers(range(10)))
>>> [0, 2, 4, 6, 8]

您可以使用内置的
过滤器

def print_even_numbers(lst):
    return list(filter(lambda x: not x%2, lst))
注意:在Python2上,filter已经返回了一个列表,因此不需要转换它

def print_even_numbers(lst):
    return filter(lambda x: not x%2, lst)

顺便说一下,该函数名为“打印偶数”,但它不打印任何内容;)

您可以使用内置的
过滤器

def print_even_numbers(lst):
    return list(filter(lambda x: not x%2, lst))
注意:在Python2上,filter已经返回了一个列表,因此不需要转换它

def print_even_numbers(lst):
    return filter(lambda x: not x%2, lst)

顺便说一下,该函数名为
print\u偶数
,但它不打印任何内容;)

list
是列表类型的名称。因此,不能对类型进行迭代。您应该使用
n
。其次,您的
返回值
缩进错误。它应该在函数的顶层,因为
return
退出函数。然后你需要在某处收集结果

def print_even_numbers(n):
    '''Return a list of even numbers given a list of integers'''
    result = []
    for x in n:
        if x % 2 == 0:
           result.append(x)
    return result
这可以用一个简单的列表来写:

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

list
是列表类型的名称。因此,不能对类型进行迭代。您应该使用
n
。其次,您的
返回值
缩进错误。它应该在函数的顶层,因为
return
退出函数。然后你需要在某处收集结果

def print_even_numbers(n):
    '''Return a list of even numbers given a list of integers'''
    result = []
    for x in n:
        if x % 2 == 0:
           result.append(x)
    return result
这可以用一个简单的列表来写:

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

我尝试了这段代码,但当我给它一个列表(例如[1,2,3,4])时,它只返回第一个偶数。这是为什么?我试过这段代码,但当我给它一个列表(例如[1,2,3,4])时,它只返回第一个偶数。这是为什么?这两个有什么不同?def print_偶数(n):“返回给定整数列表的偶数列表”:如果x%2==0:返回x与def print_偶数(n):“返回给定整数列表的偶数列表”’返回[x对于给定整数列表的x,如果x%2==0]@Deer530:两个版本的操作相同,但是第二个更短。当我尝试缩短版本时,它给了我一个所有偶数整数的列表,并在它们周围加上括号(我想要的),但对于第一个版本,它只给了我列表中的第一个偶数。你是否按照示例所示缩进了函数?
return
语句所处的缩进级别非常重要,这样就不会在循环结束之前结束循环。这两个缩进级别有何不同?def print_偶数(n):“返回给定整数列表的偶数列表”:如果x%2==0:返回x与def print_偶数(n):“返回给定整数列表的偶数列表”’返回[x对于给定整数列表的x,如果x%2==0]@Deer530:两个版本的操作相同,但是第二个更短。当我尝试缩短版本时,它给了我一个所有偶数整数的列表,并在它们周围加上括号(我想要的),但对于第一个版本,它只给了我列表中的第一个偶数。你是否按照示例所示缩进了函数?
return
语句的缩进级别非常重要,这样就不会在循环完成之前结束循环。