用法:
Iterators.filter(flt, itr)
给定一个谓词函数 flt
和一个可迭代对象 itr
,返回一个可迭代对象,该对象在迭代时产生满足 itr
的元素 x
满足 flt(x)
。原始迭代器的顺序被保留。
这个函数是lazy
;也就是说,保证在 时间内返回并使用 额外空间,并且 flt
不会被调用 filter
调用。迭代返回的可迭代对象时将调用flt
。这些调用不会被缓存,重复调用时会重复调用。
请参阅 Base.filter
,了解数组过滤的即刻实现。
例子
julia> f = Iterators.filter(isodd, [1, 2, 3, 4, 5])
Base.Iterators.Filter{typeof(isodd), Vector{Int64}}(isodd, [1, 2, 3, 4, 5])
julia> foreach(println, f)
1
3
5
julia> [x for x in [1, 2, 3, 4, 5] if isodd(x)] # collects a generator over Iterators.filter
3-element Vector{Int64}:
1
3
5
相关用法
- Julia Iterators.flatten用法及代码示例
- Julia Iterators.partition用法及代码示例
- Julia Iterators.rest用法及代码示例
- Julia Iterators.enumerate用法及代码示例
- Julia Iterators.zip用法及代码示例
- Julia Iterators.drop用法及代码示例
- Julia Iterators.countfrom用法及代码示例
- Julia Iterators.Stateful用法及代码示例
- Julia Iterators.product用法及代码示例
- Julia Iterators.accumulate用法及代码示例
- Julia Iterators.map用法及代码示例
- Julia Iterators.dropwhile用法及代码示例
- Julia Iterators.peel用法及代码示例
- Julia Iterators.reverse用法及代码示例
- Julia Iterators.repeated用法及代码示例
- Julia Iterators.takewhile用法及代码示例
- Julia Iterators.cycle用法及代码示例
- Julia Iterators.take用法及代码示例
- Julia IteratorsMD.CartesianIndex用法及代码示例
- Julia IteratorsMD.CartesianIndices用法及代码示例
- Julia InteractiveUtils.supertypes用法及代码示例
- Julia IdDict用法及代码示例
- Julia InteractiveUtils.subtypes用法及代码示例
- Julia Inf用法及代码示例
- Julia IOBuffer用法及代码示例
注:本文由纯净天空筛选整理自julialang.org大神的英文原创作品 Base.Iterators.filter — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。