如何检索包含一个项目的集合中的唯一项目

时间:2016-11-09 09:31:25

标签: julia

我有一个包含单个项目的集合,在本例中是一个字符串:

b = Set(["A"])

我想把那个单品拿出来。这样做的最佳方法是什么?我能想到的唯一方法是使用循环:

single_item = ""
for item in b
    single_item = item
end

得到了我需要的东西

julia> single_item
"A"

但我觉得必须有一个更简单的方法。

2 个答案:

答案 0 :(得分:6)

怎么样

julia> collect(b)[1]
"A"

修改

正如传奇人物丹·盖茨所建议的那样,考虑一下

julia> collect(take(b,1))[1]
"A" 

如果内存是个问题

答案 1 :(得分:5)

我建议first

julia> b = Set(["A"])
Set(ASCIIString["A"])

julia> first(b)
"A"

我们可以对此进行分析,查看分配数量。 (因为内存分配很慢)。我会忽略实际的时间,因为这是一次运行。 显示的结果是每次调用的第二次运行。 b已声明为const

julia> @time first(b)
  0.000003 seconds (4 allocations: 160 bytes)
"A"


julia> @time collect(b)[1]
  0.000005 seconds (5 allocations: 240 bytes)
"A"


julia> @time first(next(b,start(b)))
  0.000007 seconds (5 allocations: 192 bytes)
"A"