且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在Julia中保存和检索字典的正确方法是什么?

更新时间:2022-12-18 09:15:48

您可以使用 JLD $包含在 HDF5 中的c $ c>(Julia Data)子模块> 包:

 使用HDF5,JLD $ b $ Pkg.add(HDF5)
bd = Dict(
(a,b)=> [1,2,3],
(c,d)=> [4,5,6 ],
(e,f)=> [7,8,9]

save(data.jld,data,d)
load(data.jld)[data]




JLD模块的优势在于它保留了每个变量的精确类型信息。


lockquote>

I have seen that Julia adecuately interprets "MAT" files which have structures in them which are read as dictionaries without problem. Now I have created a dictionary of my own, which has the following structure

(String, String)=> [ Int, Int, Int]

on each entry. I can save it with writeddlm and it produces a very orderly tabular text file, separated by tabs (\t), but then I cannot retrieve it without doing a LOT of parsing. If I use readdlm I get an array of type Any, with the very unconfortable structure at each line

"(\"Bla bla\", \"tururu\")"     "[a, b, c]"

That is, two columns of Strings which contain signs such as '"' and '['.

You could use the JLD (Julia Data) submodule included in the HDF5 package:

Pkg.add("HDF5")
using HDF5, JLD
d = Dict(
    ("a", "b") => [1, 2, 3],
    ("c", "d") => [4, 5, 6],
    ("e", "f") => [7, 8, 9]
)
save("data.jld", "data", d)
load("data.jld")["data"]

the advantage of the JLD module is that it preserves the exact type information of each variable.