У меня два списка:

l1 = list(2, 3)
l2 = list(4)

Хочу третий список:

list(2, 3, 4).

Как по-простому сделать. Хотя я могу сделать это в цикле for, но я ожидаю ответа в один лайнер или, возможно, встроенного метода.

Собственно список у меня есть:
список (список (2, 3), список (2, 4), список (3, 5), список (3, 7), список (5, 6), список (5, 7), список (6) , 7)).
После вычисления на list (2, 3) и list (2, 4), я хочу list (2, 3, 4).

Rohit Singh

Ответов: 3

Ответы (3)

c можно использовать в списках (и не только в векторах):

# you have
l1 = list(2, 3)
l2 = list(4)

# you want
list(2, 3, 4)
[[1]]
[1] 2

[[2]]
[1] 3

[[3]]
[1] 4

# you can do
c(l1, l2)
[[1]]
[1] 2

[[2]]
[1] 3

[[3]]
[1] 4

Если у вас есть список списков, вы можете сделать это (возможно) более комфортно с помощью do.call, например:

do.call(c, list(l1, l2))

Мы можем использовать добавить

append(l1, l2)

У него также есть аргументы для вставки элемента в определенное место.

Я хотел сделать то же самое, но чтобы сохранить список как простой массив строк, поэтому я написал новый код, который из того, что я читал, может быть не самым эффективным, но работал для того, что я необходимо сделать:

combineListsAsOne <-function(list1, list2){
  n <- c()
  for(x in list1){
    n<-c(n, x)
  }
  for(y in list2){
    n<-c(n, y)
  }
  return(n)
}

Он просто создает новый список и добавляет элементы из двух предоставленных списков для создания одного.

2022 WebDevInsider