假设您在列表中调用“过滤器”函数,并使用它来查找满足特定属性的所有元素。输出列表中的元素是否保证与输入列表中的元素顺序相同?
答案 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
也可以保留它。