如何使用Python中的filter函数来过滤列表中的数据?
Python中的filter()函数是一种非常有用的函数,该函数可以帮助我们过滤列表中的数据。该函数接受两个参数, 个参数为函数,“函数名”,第二个参数为列表,“可迭代对象”。该函数返回一个新的可迭代的对象,该对象包含了所有函数返回值为True的元素。
这里主要讲解利用filter()函数对Python中列表进行筛选的方法,具体步骤如下:
1.定义一个筛选函数
首先需要定义一个函数,该函数用于筛选列表中的数据。函数的定义方法如下:
def filter_func(element):
#筛选逻辑处理
return bool_value
其中,element表示列表中的每个元素,bool_value表示该元素是否符合筛选条件,该值为布尔类型,True表示符合筛选条件,False表示不符合筛选条件。
例如,我们需要对列表中的元素进行筛选,只保留大于10的元素。那么筛选函数的定义如下:
def filter_func(element):
return element > 10
2.利用filter()函数进行筛选
定义好筛选函数后,我们就可以利用filter()函数进行筛选了。代码如下:
num_list = [1,12,4,8,19,3,15,10]
filter_list = list(filter(filter_func,num_list))
其中,num_list表示原始的列表,filter_list表示筛选后的列表。
上述代码执行后,输出结果为:
[12, 19, 15]
可以看到,得到的新列表中只包含大于10的元素。
除了使用lambda表达式外,也可以将函数以传统的函数方式定义:
def filter_func(x):
if(x%2==0):
return True
else:
return False
list_a=[1,2,3,4,5,6,7,8,9,10,11,12]
filted_a=filter(filter_func,list_a)
print(list(filted_a))
3.使用lambda表达式进行筛选
除了使用自定义筛选函数外,还可以使用lambda表达式来定义筛选逻辑。这种方式更加紧凑,代码简单。例如,上面的例子中,lambda表达式的应用如下:
num_list = [1,12,4,8,19,3,15,10]
filter_list = list(filter(lambda x:x>10,num_list))
上面代码执行后,输出结果仍然是:
[12, 19, 15]
总结:
通过Python中的filter函数,我们可以轻松地对列表中的数据进行筛选,使用非常简单。不仅能够利用自定义筛选函数,还可以使用lambda表达式进行筛选逻辑的定义。
