使用Python内置的filter()函数过滤列表
Python内置的filter()函数可以方便地过滤列表。它可以接受一个函数和一个可迭代对象作为参数,返回一个包含可迭代对象中所有符合函数条件的元素的迭代器。
可以使用filter()函数来过滤列表中的元素,只返回满足条件的元素。下面是一个简单的示例,显示如何使用filter()函数来过滤列表。
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def even_number(number):
return number%2==0
filtered_list = list(filter(even_number, list_numbers))
print(filtered_list)
输出结果:
[2, 4, 6, 8, 10]
在这个示例中,我们创建了一个列表(list_numbers),其中包含数字1到10的所有元素。然后我们定义一个函数(even_number),用于检查数字是否为偶数。在这个函数中,我们使用%运算符来检查数字是否被2整除。如果数字被2整除并且返回为True,则该数字被视为偶数。
接下来,我们使用filter()函数来筛选列表(list_numbers)中所有偶数。我们将even_number函数作为 个参数传递给filter()函数,然后将列表(list_numbers)作为第二个参数传递给filter()函数。filter()函数遍历列表(list_numbers)中的每个元素,并将它传递给even_number()函数。如果even_number()函数返回True,则该元素被包括在筛选后的列表(filtered_list)中,否则将被忽略。
最后,我们打印输出了一个包含偶数的列表。
filter()函数可以使用lambda表达式来简化代码。下面是一个使用lambda表达式的示例。
list_strings = ['apple', 'banana', 'cherry', 'orange'] filtered_list = list(filter(lambda string: len(string) > 5, list_strings)) print(filtered_list)
输出结果:
['banana', 'cherry', 'orange']
在此示例中,我们创建了一个字符串列表(list_strings),其中包含四个不同的单词。然后我们使用lambda表达式来检查每个字符串是否具有超过5个字符。如果字符串具有超过5个字符,则该lambda表达式返回True,元素将包含在已筛选的列表(filtered_list)中。
最后,我们打印输出了一个包含所有单词长度大于5的列表。
总结:
在Python中,filter()函数可以很好地用于列表过滤。它可以接受一个函数作为参数,该函数将对列表中的每个元素进行验证,并将所有符合条件的元素包含在新列表中。可以使用常规函数或lambda表达式来提供用于验证元素的函数。使用filter()函数可以使Python代码变得更加简洁和易于阅读。
