gpt4 book ai didi

indexing - 如何从 Julia 的生成器中获取前 N 个元素

转载 作者:行者123 更新时间:2023-12-04 01:02:50 25 4
gpt4 key购买 nike

傻问题:第一个怎么拿N来自 julia 的元素 Generator ?

例如,我有一个生成奇数的生成器:

julia> odds = (x for x in 1:2:typemax(Int))
Base.Generator{StepRange{Int64,Int64},var"##69#70"}(var"##69#70"(), 1:2:9223372036854775807)

我怎样才能得到前10个奇数?
我尝试过这样的事情,但都没有成功:
julia> first(odds, 10)
ERROR: MethodError: no method matching first(::Base.Generator{StepRange{Int64,Int64},var"##69#70"}, ::Int64)

julia> head(odds, 10)
ERROR: UndefVarError: head not defined

julia> take!(odds, 10)
ERROR: MethodError: no method matching take!(::Base.Generator{StepRange{Int64,Int64},var"##69#70"}, ::Int64)
methodswith似乎也没有希望:
julia> methodswith(Base.Generator)
[1] axes(g::Base.Generator) in Base at generator.jl:52
[2] collect(itr::Base.Generator) in Base at array.jl:615
[3] iterate(g::Base.Generator, s...) in Base at generator.jl:43
[4] length(g::Base.Generator) in Base at generator.jl:50
[5] ndims(g::Base.Generator) in Base at generator.jl:53
[6] size(g::Base.Generator) in Base at generator.jl:51

最佳答案

您可以使用 Iterators.take .

试试 collect(Iterators.take(odds, 10))

关于indexing - 如何从 Julia 的生成器中获取前 N 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57895598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com