当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia Iterators.filter用法及代码示例


用法:

Iterators.filter(flt, itr)

给定一个谓词函数 flt 和一个可迭代对象 itr ,返回一个可迭代对象,该对象在迭代时产生满足 itr 的元素 x 满足 flt(x) 。原始迭代器的顺序被保留。

这个函数是lazy;也就是说,保证在 Θ(1) 时间内返回并使用 Θ(1) 额外空间,并且 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

相关用法


注:本文由纯净天空筛选整理自julialang.org大神的英文原创作品 Base.Iterators.filter — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。