gpt4 book ai didi

dictionary - 在 Julia 中展平字典

转载 作者:行者123 更新时间:2023-12-01 02:00:23 25 4
gpt4 key购买 nike

我有一个 Julia 的字典

In[27]:  CollectedOutputCount
Out[27]: Dict{Any,Any} with 3 entries:
2 => Any[278963,1,1]
3 => Any[283339,1,1]
1 => Any[272878,0,0,0]

我想从 Dict 的内容创建一个数组,该内容由每个 Dict 条目 2:end 的总和组成。每个 Dict 条目中的第一个值是一个标签。输出需要类似于
Output = [ label sum;label sum;...]

在这种情况下,它将是
Output = [278963 2;283339 2;272878 0]

除了在循环中迭代之外,还有什么方法可以做到这一点吗?是否有一些函数可以将 Dict 展平为一个数组(可能在尺寸不均匀的地方使用填充)?

最佳答案

我不确定可以以这种自定义方式扁平化字典的函数,但是您可以通过使用 map 来避免循环。 :

鉴于你的字典:

CollectedOutputCount = Dict(2 => [278963,1,1], 3 => [283339,1,1], 1 => [272878,0,0,0], 4 => [1234])

您可以将其展平为 [label sum;标签总和...] 在一行中:
vcat(map(a -> [a[1] sum(a[2:end])], values(CollectedOutputCount))...)

这给了你:
4x2 Array{Int64,2}:
1234 0
278963 2
283339 2
272878 0
map将函数应用于数组的所有元素,在本例中是字典的值迭代器。然后你可以使用 vcat 附加这些.注意如何 sum当字典中没有值时给你 0,只有 1 元素作为标签 (1234 0) .

关于dictionary - 在 Julia 中展平字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37105801/

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