0.),3) a[1]["example"] = 1. pri-6ren">
gpt4 book ai didi

dictionary - 将值设置为字典数组中的特定元素会覆盖数组中的所有值

转载 作者:行者123 更新时间:2023-12-04 12:31:06 25 4
gpt4 key购买 nike

我正在尝试将特定值分配给字典数组中的特定位置。赋值覆盖数组中的所有值 - 为什么?

a = fill(Dict("example" => 0.),3)
a[1]["example"] = 1.
println(a)

'''输出是

[Dict("example" => 1.0), Dict("example" => 1.0), Dict("example" => 1.0)]

最佳答案

这是 fill 的预期行为,在 documentation 中有描述。 .

If x is an object reference, all elements will refer to the same object

使用数组理解

我建议使用 array comprehension为此目的。

julia> a = [Dict("example" => 0.) for _ in 1:3]
julia> a[1]["example"] = 1.
1.0
julia> println(a)
[Dict("example" => 1.0), Dict("example" => 0.0), Dict("example" => 0.0)]

替代 map 解决方案

如果您真的不喜欢列表推导式,您可以使用 map 通过实例化外观相同的字典的多个实例来实现相同的解决方案。

julia> b = map(x -> Dict("example" => 0.), 1:3)
3-element Vector{Dict{String, Float64}}:
Dict("example" => 0.0)
Dict("example" => 0.0)
Dict("example" => 0.0)

julia> b[1]["example"] = 2.0
2.0

julia> println(b)
[Dict("example" => 2.0), Dict("example" => 0.0), Dict("example" => 0.0)]

关于dictionary - 将值设置为字典数组中的特定元素会覆盖数组中的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69026247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com