Для заданного списка выведите новый список, длина которого на 1 меньше исходной - PullRequest
0 голосов
/ 20 октября 2019

Работа с вопросом прямо сейчас, когда он просит меня создать новый список из заданного списка, длина которого будет на 1 меньше, чем у оригиналов.

Я думаю, что знаю, какие концепции необходимо использоватьно я не могу понять, как соединить это, чтобы работать.

У меня пока есть это, но оно суммирует числа в списке вместо того, чтобы просто перечислить их и убрать 1 элемент из данного списка.

def forward_difference(elems):
    values = []
    total = 0

    for x in elems:
      total += x
      values = values[:-1]
      values.append(total)

    return values
  print (forward_difference([1,2,3,4]))

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

values = [1,2,3]
values = values[:-1]
print (values)

Вывод:

[1,2]

Еще новичок в python и пытается понять концепции лучше, любойпомощь будет принята с благодарностью!

Результат, который я ожидал, был [1,2,3], но вместо этого я продолжаю получать [1,3,6,10]

1 Ответ

2 голосов
/ 20 октября 2019

Вам не нужно использовать цикл. Второй код, который вы разместили, выполняет то, что вы просите, осталось только поместить его в функцию:

def forward_difference(elems):
    return elems[:-1]

print(forward_difference([1,2,3,4])) 

Вывод:

[1,2,3]
...