Почему вы не можете дублировать список и потерять первый индекс в списке? - PullRequest
0 голосов
/ 26 июня 2019

Я пытался создать список (для рекурсивных целей), который не содержал бы индекс этого списка [1].Однако, когда я попытался сделать это, создав экземпляр пустого списка и затем добавив к нему остальную часть списка, вывод показывает, что список пуст.Мне было интересно, была ли конкретная причина или концепция, почему он не создавал специальный список, который я хотел.

a = [1,2,3,4,5]
print(list().append(0).append(a[1:]))

Вывод должен быть [1,3,4,5], но вместо этого "Нет ".

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

Ответы [ 5 ]

2 голосов
/ 26 июня 2019

Прочитайте документацию.append - это метод класса list, который изменяет объект.У него нет возвращаемого значения;None по умолчанию.Ваше выражение уменьшается до

print(None.append([2, 3, 4, 5]))

, которое, в свою очередь, имеет возвращаемое значение None.Вы можете создать свой новый список просто с помощью

new_list = a[1:]
1 голос
/ 27 июня 2019

Задница @ Даниэль Роузман сказал, функция добавления возвращает None.

Если я понимаю, чего вы хотите достичь, создайте небольшую функцию и просто сделайте:

a = [1,2,3,4,5]

def addAndReturn(ls, elem):
  ls.append(elem)
  return ls

print(addAndReturn(addAndReturn(list(), 0), a[1:]))

результат:

[0, [2, 3, 4, 5]]

1 голос
/ 26 июня 2019

Вам нужно будет создать новый список и расширить его оттуда:

b = [0]
b.extend(a[1:]) 
1 голос
/ 26 июня 2019

Метод append добавляет элемент к своему объекту, но возвращает None. То, что вы хотите, это дополнение списка:

print(list() + [0] + [a[1:]])
1 голос
/ 26 июня 2019

append добавляет к списку и возвращает None.Вы должны сохранить этот новый список в переменной, а затем распечатать его.Например,

newlist = list() # or just[]
newlist.append(0)
newlist.extend(a[1:]) # OP had append, but you probably meant "extend"
print(newlist)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...