Collections 如何在Julia中创建集合?
这似乎是一个非常基本的问题,但找不到答案。如何在Julia中创建集合?例如,我想打开一个文本文件并解析每一行以创建一个(iterable或其他)集合。显然,我不知道预先有多少元素 我可以像这样迭代这些行Collections 如何在Julia中创建集合?,collections,julia,Collections,Julia,这似乎是一个非常基本的问题,但找不到答案。如何在Julia中创建集合?例如,我想打开一个文本文件并解析每一行以创建一个(iterable或其他)集合。显然,我不知道预先有多少元素 我可以像这样迭代这些行 I = each_line(open(fileName,"r")) state = start(I) while !done(I, state) (i, state) = next(I, state) println(i) end 但我不知道如何将每个I放入数组或其他集合中。我试过
I = each_line(open(fileName,"r"))
state = start(I)
while !done(I, state)
(i, state) = next(I, state)
println(i)
end
但我不知道如何将每个I放入数组或其他集合中。我试过了
map( i -> println(i), each_line(open(fileName,"r") ) )
但是我犯了错误
无方法映射(函数,每条线)
您可以这样做:
lines = String[]
for line in each_line(open(fileName))
push!(lines, line)
end
然后,
行
包含行列表。您需要第一行中的字符串
,以使阵列可扩展。文档中主要介绍了标准集合和支持的操作
具体而言,本节涵盖1d数组
类型(向量)支持的所有操作,包括推送代码>和弹出代码>以及插入、调整大小等
Omar的答案是正确的,我只需要添加一个小限定:String[]
创建一个1d数组String
s。例如,可以使用相同的构造函数语法来创建Int[]
,Float[]
,甚至任何[]
向量。后一种类型可以保存任何类型的对象。根据您的Julia版本,您还可以编写collect(eachline(open(“LICENSE.md”))
或[eachline(open(“LICENSE.md”)…]
。我认为这些在0.1.x版本中不起作用,但在较新的0.2开发版本中会起作用(目前推荐使用0.2版本)。可能值得指出的是,对于特殊情况Any[]
,即{}
,有一条捷径可走。很好,我自己编写了这个函数,很高兴看到它现在在图书馆里。(collect比arrayof更好,我用的是arrayof。)