Python中的filter函数:如何使用它过滤列表中的元素?
在Python中,filter()是一种内置函数,它可以用于过滤列表中的元素。该函数使用一个函数作为参数,该函数将用于过滤列表中的元素,并返回一个新的过滤后的列表,其中只包含符合条件的元素。
filter()函数接受两个参数:函数和可迭代对象,其中函数将用于过滤可迭代对象中的元素。函数被应用于可迭代对象中的每个元素,并将返回True或False。如果函数返回True,则该元素将包含在返回的新列表中,否则该元素将被过滤掉。
下面是一个简单的例子,使用filter()函数从一个列表中过滤所有的偶数。
# 使用filter()函数过滤偶数 lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_lst = list(filter(lambda x: x%2 == 0, lst)) print(even_lst)
输出:
[2, 4, 6, 8, 10]
在上面的代码中,我们首先定义了一个列表lst,然后使用filter()函数过滤出所有的偶数。filter()函数使用lambda表达式定义了一个函数,该函数用于检查给定的元素是否为偶数。
在这个lambda表达式中,我们使用了%运算符,检查可迭代对象lst中的每个元素是否为偶数。如果元素是偶数,那么函数返回True,并将元素包含在返回的新列表even_lst中。
这是一个非常简单的例子,filter()函数在实际应用中可以使用更复杂的过滤函数。下面是一个更常见的例子,使用filter()函数从一个字符串列表中过滤出所有的长度大于3的字符串。
# 使用filter()函数过滤长度大于3的字符串 lst = ['apple', 'banana', 'pear', 'watermelon', 'grapes', 'orange', 'kiwi'] long_str_lst = list(filter(lambda x: len(x) > 3, lst)) print(long_str_lst)
输出:
['apple', 'banana', 'pear', 'watermelon', 'grapes', 'orange']
在上面的代码中,我们首先定义了一个字符串列表lst,然后使用filter()函数过滤出所有的长度大于3的字符串。
filter()函数使用lambda表达式定义了一个函数,该函数用于检查给定的字符串是否具有大于3个字符的长度。如果字符串长度大于3,那么函数返回True,并将字符串包含在返回的新列表long_str_lst中。
总结:
filter()函数是Python中的一种内置函数,它可以用于过滤列表中的元素。该函数使用一个函数作为参数,该函数将用于过滤列表中的元素,并返回一个新的过滤后的列表,其中只包含符合条件的元素。在lambda表达式中定义过滤函数,并在lambda表达式中使用可迭代对象的每个元素,根据需求返回True或False。使用filter()函数可以轻松地过滤出符合条件的元素并创建新的列表。
