在没有 eval(parse(paste())) 的情况下初始化时可变命名列表元素

mutable naming list elements at initialization without eval(parse(paste()))

我的问题与How to add variable key/value pair to list object?类似。我想根据变量的值给列表元素一个可变的名称。但我不想 重命名 列表,而是在初始化时 正确命名 (我想要一个单行)而不使用“邪恶三人组(eval, 解析、粘贴)".

list 工作原理的 "problem" 是

key <- "width" 
my_list <- list(key = 32) 

将元素(可以理解)命名为 "key" 而不是 "width",即使 key <- "width" 并且人们渴望获得与 my_list <- list(width = 32) 相同的结果。

"evil trio solution" 将是 my_list <- eval(parse(text = paste("list(", key, "=32)"))),但我正在寻找更优雅的解决方案,如 list(eval(key) = 32)(不起作用)。

问题中链接了用户 docendo discimus gave the answer setNames(list(32), key) but "deleted [his] answer since it's already given in the Q&A。"

不幸的是,这个很好的答案(我的赞成票)只有 3 票,并且不能直接识别为合适的答案(因为阿萨德易卜拉欣谈论 "hash" 并且他的代码不使用来自 OP 的代码)。