首页 > 解决方案 > 根据字典和键数组创建值数组

问题描述

我是 Julia 的新手,所以如果这是一个基本问题,我很抱歉。

假设我们有一个字典和一个键向量:

X = [2, 1, 1, 3]
d = Dict( 1 => "A", 2 => "B", 3 => "C")

我想创建一个包含值而不是键的新数组(根据字典),所以最终结果将类似于

Y = ["B", "A", "A", "C"]

我想我可以遍历向量元素,在字典中查找并返回相应的值,但这对我来说似乎非常低效。就像是

Y = Array{String}(undef, length(X))
for i in 1:length(X)
    Y[i] = d[X[i]]
end

X编辑:另外,如果包含missing值,我提出的解决方案将不起作用。

所以我的问题是,是否有更有效的方法(我正在使用更大的数组和字典),或者这是一种合适的方法吗?

标签: julia

解决方案


效率在不同的情况下可能意味着不同的事情,但我可能会这样做:

Y = [d[i] for i in X]

如果X包含missing值,您可以skipmissing(X)在理解中使用。


推荐阅读