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

Ian*_*all 5 julia

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

b = Set(["A"])
Run Code Online (Sandbox Code Playgroud)

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

single_item = ""
for item in b
    single_item = item
end
Run Code Online (Sandbox Code Playgroud)

这得到了我需要的东西

julia> single_item
"A"
Run Code Online (Sandbox Code Playgroud)

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

ise*_*arn 6

怎么样

julia> collect(b)[1]
"A"
Run Code Online (Sandbox Code Playgroud)

编辑

正如传说中的丹·盖茨建议的那样,考虑一下

julia> collect(take(b,1))[1]
"A" 
Run Code Online (Sandbox Code Playgroud)

如果记忆是一个问题


Lyn*_*ite 5

我建议 first

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

julia> first(b)
"A"
Run Code Online (Sandbox Code Playgroud)

我们可以对此进行分析,查看分配数量.(因为内存分配很慢).我会忽略实际的时间,因为这是一次运行.显示的结果是每次调用的第二次运行.与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"
Run Code Online (Sandbox Code Playgroud)