julia - 根据字典和键数组创建值数组
问题描述
我是 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
值,我提出的解决方案将不起作用。
所以我的问题是,是否有更有效的方法(我正在使用更大的数组和字典),或者这是一种合适的方法吗?
解决方案
效率在不同的情况下可能意味着不同的事情,但我可能会这样做:
Y = [d[i] for i in X]
如果X
包含missing
值,您可以skipmissing(X)
在理解中使用。
推荐阅读
- python - 如何在不中断上层导入的情况下从子目录运行 Python 脚本?
- c++ - 虚拟继承构造函数的组装
- sql - 如何遍历在嵌套 Oracle SQL 查询中选择的记录并根据特定条件在外部选择中选择它们
- sql - 我不能在 Oracle 中使用 min 和 max
- symfony - 为 HttpFoundation/response 返回 Null
- python - 为什么 Python zipfile 不提供与命令行 zip 相同的输出 .zip 文件大小?
- elasticsearch - 使用 NEST 设置 Elasticsearch routing_partition_size
- elasticsearch - 仅来自唯一值的 Date_histogram 和 top_hits
- graphql - 使用 Apollo Server 运行 Jest 失败 global.fetch undefined
- java - 反转屏幕,包括 null 和空字符串