我有一个列表,其中嵌套了这样一个列表:
>>>View(mylist)
[
[{"id":1, "name": "Jack"},{"id":2, "name": "Mike"}],
[{"id":3, "name": "Mary"},{"id":4, "name": "Bob"}],
]
现在,我想删除这个列表的内层,所以它应该是:
>>>View(mylist)
[
{"id":1, "name": "Jack"},{"id":2, "name": "Mike"},
{"id":3, "name": "Mary"},{"id":4, "name": "Bob"},
]
在python中,只需使用压缩列表即可轻松实现:
[subitem for item in mylist for subitem in item]
或使用itertools:
import itertools
list(itertools.chain.from_iterable(mylist))
然而,在R语言中,我觉得有点棘手。我尝试使用do.call:
do.call(c, mylist)
它工作得很好。然而,当我的嵌套列表像这样大时:
使用do.call()后,我得到了这样的结果:
输出格式与之前不同,那么问题是什么?
顺便说一下,您可以使用以下R代码构造上述“mylist”:
mylist <- list(
list(
list(id = 1, name = "Jack"),
list(id = 2, name = "Mike")
),
list(
list(id = 3, name = "Mary"),
list(id = 4, name = "Bob")
)
)
以及“数据1”:
data1 <- list(
data.frame(
id = c(3, 4),
name = c("John", "Anna")
),
data.frame(
id = c(5, 6),
name = c("Tom", "Jerry")
)
)