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
语句的缩进级别非常重要,这样就不会在循环完成之前结束循环。