过滤器是否保留列表排序?

时间:2014-10-25 20:00:37

标签: python filter

假设您在列表中调用“过滤器”函数,并使用它来查找满足特定属性的所有元素。输出列表中的元素是否保证与输入列表中的元素顺序相同?

2 个答案:

答案 0 :(得分:12)

简单的答案是肯定的。列表是有序的迭代,filter生成器按顺序一次读取每个项目。因此,它将按顺序产生输出。

>>> example = list(range(10))
>>> list(filter(lambda n: n % 2, example))
[1, 3, 5, 7, 9]

答案 1 :(得分:8)

来自filter的{​​{3}}:

  

请注意,filter(function, iterable)等同于生成器表达式(item for item in iterable if function(item))

由于等效的生成器表达式将保留顺序,因此filter也可以保留它。