gpt4 book ai didi

data-structures - Julia DefaultDict 为每个键使用相同的值(数组)

转载 作者:行者123 更新时间:2023-12-05 00:48:12 26 4
gpt4 key购买 nike

我想创建一个数组的默认字典。问题是,它对每个键使用相同的数组。

# using Pkg
# Pkg.add("DataStructures")
using DataStructures: DefaultDict
genome = DefaultDict{Tuple{String, String}, Array{Int64, 1}}(Int64[])
push!(genome["chr1", "+"], 5)
# 1-element Array{Int64,1}:
# 5

push!(genome["chrX", "-"], 10)
# 2-element Array{Int64,1}:
# 5
# 10

我尝试给它一个 lambda 以创建一个新数组 x -> Int64,但这只是给出了一个类型错误。

最佳答案

我不知道如何使用 DefaultDict 解决您的问题,但我认为 Julia 的内置字典结构提供了更好的解决方案。可以使用

get!(collection, key, default)

自动给出一个尚未设置的默认值。上面的代码将被重写:

genome = Dict{Tuple{String, String}, Array{Int64, 1}}()
push!(get!(genome, ("chr1", "+"), Int64[]), 5)
# 1-element Array{Int64,1}:
# 5

push!(get!(genome, ("chrX", "-"), Int64[]), 10)
# 1-element Array{Int64,1}:
# 10

关于data-structures - Julia DefaultDict 为每个键使用相同的值(数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52662600/

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