将过滤器对象转换为 Python 中的列表

在 Python 中将过滤器对象转换为列表

Convert a filter object to a list in Python

使用list()该类将过滤器对象转换为列表,例如
result = list(filter(function, iterable)). filter函数返回一个迭代器,可以使用list()该类将其转换为列表。

主程序
my_list = [-2, 14, -7, 8, 6] result = list( filter(lambda number: number > 0, my_list) ) print(result) # 👉️ [14, 8, 6]

filter函数接受一个函数和一个可迭代对象作为参数,并从可迭代对象的元素构造一个迭代器,函数返回一个真值。

列表类接受一个可迭代对象并返回一个列表对象

filter()函数返回一个filter对象,因此我们必须使用list()该类将其转换为列表。

该示例使用 lambda 函数,但您也可以将常规函数传递给
filter().

主程序
my_list = [-2, 14, -7, 8, 6] def greater_than_0(number): return number > 0 result = list( filter(greater_than_0, my_list) ) print(result) # 👉️ [14, 8, 6]

列表中的每个元素都传递给greater_than_0函数。

该函数检查数字是否大于0并返回结果。

filter对象只包含满足条件的元素。

如果您传递None函数参数,则 iterable 的所有虚假元素都将被删除。

主程序
my_list = ['abc', '', 0, None, False, {}, 'def'] result = list( filter(None, my_list) ) print(result) # 👉️ ['abc', 'def']

所有不真实的值都被认为是虚假的。Python 中的虚假值是:

  • 定义为 falsy 的常量:NoneFalse.
  • 0(零)任何数字类型。
  • 空序列和集合:(""空字符串),()(空元组),[]
    (空列表),
    {}(空字典),set()(空集),range(0)(空范围)。

如果需要过滤可迭代对象的元素,也可以使用列表理解。

主程序
my_list = [-2, 14, -7, 8, 6] new_list = [ item for item in my_list if item > 0 ] print(new_list) # 👉️ [14, 8, 6]
列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们检查数字是否大于0并返回结果。

新列表只包含满足条件的元素。

通常情况下,列表理解对于基于简单条件过滤列表来说更直接和可读。

发表评论