當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。