#python #python-3.x #list
#python #python-3.x #Список
Вопрос:
Я пишу код, который возвращает элементы odd positions
в этом списке. Когда я запускаю свою программу, она не показывает никаких выходных данных. Но когда я заменяю return lst2
на return print(lst2)
, он показывает мне требуемый результат. Итак, мой вопрос в том, почему моя программа не показывает никаких выходных данных, когда я пишу return lst2
?
def op(lst):
lst2=[]
for i in lst:
indx=lst.index(i)
if indx%2==1:
lst2.append(i)
return lst2
a=[22, 5, 7, 35, 1, 100, 15]
op(a)
Комментарии:
1. В этом коде нет никаких
print()
операторов. Почему вы ожидаете, что что-то будет напечатано? «return» не означает «также печатать».2. Спасибо за разъяснение. @JohnGordon
Ответ №1:
Вы просто возвращаете список, а не печатаете его.
def op(lst):
lst2 = []
for i in lst:
indx = lst.index(i)
if indx % 2 == 1:
lst2.append(i)
return lst2
a = [22, 5, 7, 35, 1, 100, 15]
print(op(a))
Комментарии:
1. «return» возвращает значение, так почему же он не возвращает список?
2. На самом деле он возвращает список, вы просто ничего не делаете с возвращаемым значением.:
print(type(op(a)))
3. @Aetooc Правильно.
return
возвращает объект в код, который вызвал функцию. Он ничего не выводит на экран.4. Спасибо за разъяснение. @Leemosh
5. Спасибо за разъяснение. @PaulM.
Ответ №2:
Поскольку вы не печатаете список, вы просто возвращаете его (сам объект списка). Это op(a)
уместно, если вы хотите что-то сделать со списком, но если вы просто хотите распечатать его содержимое, вам следует вызвать print(op(a))
или изменить функцию op для печати содержимого списка вместо его возврата.