向列表中添加一个已命名的项目时,是否保证该项目将被添加到列表的末尾?在实践中似乎是这样,但不确定这是否是一个危险的假设?添加命名的项目到命名列表 - 保证追加到列表的末尾?
test = list()
test[[ "one" ]] = 1
test[[ "two" ]] = 2 # will always appear after "one"?
test[[ "three" ]] = 3 # will always appear after "two"?
向列表中添加一个已命名的项目时,是否保证该项目将被添加到列表的末尾?在实践中似乎是这样,但不确定这是否是一个危险的假设?添加命名的项目到命名列表 - 保证追加到列表的末尾?
test = list()
test[[ "one" ]] = 1
test[[ "two" ]] = 2 # will always appear after "one"?
test[[ "three" ]] = 3 # will always appear after "two"?
如果它没有记录(它似乎不是),那么我不会依赖它。你可以确保它做类似的东西出现在列表的末尾:
test <- list()
test <- c(test, one=1)
test <- c(test, two=2)
test <- c(test, three=3)
我怀疑,如果你深入研究R的C代码,那么你会看到,它是真实的,但约书亚表示,其没有记录。您可以向R-dev询问是否记录此类行为应该的意见。可能已经存在依赖于它的现有代码。
要清楚的是,您正在使用字符串键'[['one']]'或'[['1']]'不是数字键'[[1]]'。我们可以把它所有的字符串键都按照整理顺序吗?你能像'[['1']]'而不是'[['one']]'这样的字符串键吗? – smci