M.P*_*Puk 1 dictionary tuples julia
是否有可能在Julia中构造具有元组值的字典?
我试过了
dict = Dict{Int64, (Int64, Int64)}()
dict = Dict{Int64, Tuple(Int64, Int64)}()
Run Code Online (Sandbox Code Playgroud)
我也尝试插入元组值,但我能够改变它们,因此它们不是元组.
任何的想法?
编辑:
parallel_check = Dict {Any,(Any,Any)}()
for i in 1:10
dict[i] = (i+41, i+41)
end
dict[1][2] = 1 # not able to change this way, setindex error!
dict[1] = (3, 5) # this is acceptable. why?
Run Code Online (Sandbox Code Playgroud)
元组类型的语法(即元组的类型)从(Int64,Int64)版本0.3及更早版本更改为Tuple{Int64,Int64}0.4.注意花括号,而不是parens周围Int64,Int64.您还可以通过将typeof函数应用于示例元组来在REPL中发现此信息:
julia> typeof((1,2))
Tuple{Int64,Int64}
Run Code Online (Sandbox Code Playgroud)
所以你可以像这样构建你想要的字典:
julia> dict = Dict{Int64,Tuple{Int64,Int64}}()
Dict{Int64,Tuple{Int64,Int64}} with 0 entries
julia> dict[1] = (2,3)
(2,3)
julia> dict[2.0] = (3.0,4)
(3.0,4)
julia> dict
Dict{Int64,Tuple{Int64,Int64}} with 2 entries:
2 => (3,4)
1 => (2,3)
Run Code Online (Sandbox Code Playgroud)
你的问题的另一部分是无关的,但无论如何我会在这里回答:元组是不可变的 - 你不能改变元组中的一个元素.另一方面,字典是可变的,因此您可以将全新的元组值分配给字典中的插槽.换句话说,当你写dict[1] = (3,5)你分配到dict,这是确定的,但是当你写dict[1][2] = 1你的位置分配到元组1中dict这是不正常.
| 归档时间: |
|
| 查看次数: |
533 次 |
| 最近记录: |