如何编写无需for循环的过滤列表函数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计414个文字,预计阅读时间需要2分钟。
要解决如何创建一个过滤列表而不使用for循环的函数的问题,可以选择使用Python内置的函数和生成器。以下是一个简单的例子:
pythondef filter_list(input_list, filter_func): return [item for item in input_list if filter_func(item)]
示例使用def is_even(num): return num % 2==0
my_list=[1, 2, 3, 4, 5, 6]filtered_list=filter_list(my_list, is_even)print(filtered_list)
这段代码中,`filter_list`函数接受一个列表和一个过滤函数作为参数。使用列表推导式来过滤列表,而不是for循环。`is_even`函数用于检查一个数是否为偶数。这样,我们就能得到一个只包含偶数的列表。
如何解决《我需要创建一个过滤列表而没有for循环的函数》经验,为你挑选了1个好方法。所以我的函数需要过滤一个列表,以便它返回一个列表,只列出一个值,当一个函数应用于它时,它返回一个正值,而不使用任何循环.我的代码目前是:
def positive_places(f, xs): """takes a function f and list xs and returns a list of the values of xs which satisfy f>0""" y = list(map(f, xs)) x = filter(lambda i: i > 0, y) return x这当前返回函数的所有正输出值的列表,但是我需要来自原始列表xs的相应值.
在此先感谢您的帮助!
1> khelwood..:使用列表理解:
return [x for x in xs if f(x) > 0]不使用列表理解:
return filter(lambda x: f(x) > 0, xs)既然你说它应该返回一个列表:
return list(filter(lambda x: f(x) > 0, xs))OP:"但列表理解有循环!"
本文共计414个文字,预计阅读时间需要2分钟。
要解决如何创建一个过滤列表而不使用for循环的函数的问题,可以选择使用Python内置的函数和生成器。以下是一个简单的例子:
pythondef filter_list(input_list, filter_func): return [item for item in input_list if filter_func(item)]
示例使用def is_even(num): return num % 2==0
my_list=[1, 2, 3, 4, 5, 6]filtered_list=filter_list(my_list, is_even)print(filtered_list)
这段代码中,`filter_list`函数接受一个列表和一个过滤函数作为参数。使用列表推导式来过滤列表,而不是for循环。`is_even`函数用于检查一个数是否为偶数。这样,我们就能得到一个只包含偶数的列表。
如何解决《我需要创建一个过滤列表而没有for循环的函数》经验,为你挑选了1个好方法。所以我的函数需要过滤一个列表,以便它返回一个列表,只列出一个值,当一个函数应用于它时,它返回一个正值,而不使用任何循环.我的代码目前是:
def positive_places(f, xs): """takes a function f and list xs and returns a list of the values of xs which satisfy f>0""" y = list(map(f, xs)) x = filter(lambda i: i > 0, y) return x这当前返回函数的所有正输出值的列表,但是我需要来自原始列表xs的相应值.
在此先感谢您的帮助!
1> khelwood..:使用列表理解:
return [x for x in xs if f(x) > 0]不使用列表理解:
return filter(lambda x: f(x) > 0, xs)既然你说它应该返回一个列表:
return list(filter(lambda x: f(x) > 0, xs))OP:"但列表理解有循环!"

