#python #list
#python #Список
Вопрос:
В настоящее время я изучаю pop()
функцию в Python и у меня есть вопрос.
>>> a = [1,2,3,4]
>>> a.pop(3) #or a.pop()
4
>>> print(a)
[1,2,3]
Я понимаю, что pop()
функция удаляет и возвращает значение элемента, соответствующего индексу. Однако следующий пример является причиной, по которой я в замешательстве:
>>> a = [1,2,3,4]
>>> def solution(array):
array.pop()
return array
>>> solution(a)
[1,2,3]
Во-первых, я понимаю, что функция, которую я описал, возвращает [1,2,3] . Однако, почему он не возвращает pop()
значение? Разве оно не должно возвращаться 4
, поскольку pop()
функция внутри solution()
имеет pop()
функцию, которая по определению возвращает значение извлеченного элемента?? Я думал, что эта pop()
функция действует как del
и print
функционирует одновременно.
Комментарии:
1.
return
и2. Я думаю, вы путаете, как работает REPL и как возвращаются значения.
pop()
ничего не печатает. Это REPL, показывающий последнее выражение evaulation
Ответ №1:
Когда вы вызываете return
array после array.pop()
того, как он вернет остальную часть элемента, за исключением pop
. Потому что вы возвращаете массив не для всех конкретных операций pop. Возвращает array.pop()
вместо array
def solution(array):
return array.pop()
Или другим способом вы можете сохранить элемент pop, а затем вернуть переменную pop.
def solution(array):
pop_op=array.pop()
return pop_op
Комментарии:
1. Я понимаю, что описанная вами функция возвращает всплывающий элемент, но я хочу знать причину, по которой мой не возвращает всплывающий элемент
2. @SihwanLee функция возвращает то, что указывает
return
оператор. Если вы скажете ему вернутьarray
, это то, что он вернет.
Ответ №2:
потому что вы не улавливаете, что pop()
возвращает, элемент никогда не печатается, только в оболочке python, вы возвращаете измененный массив, а не значение, возвращаемое pop()
.
Редактировать: Кстати, вам не нужно возвращать массив, исходный массив уже изменен.