【发布时间】:2020-03-07 00:47:59
【问题描述】:
我正在尝试编写一个小函数(作为练习)。此函数接受一个值列表并返回奇数值。我已经获得了使用 print() 函数给我正确答案的函数,但是我无法对 return 语句做同样的事情。
def odd_nr(list1):
i = 0
for list1[i] in list1:
if list1[i] % 2 != 0:
print(list1[i])
i += 1
return list1
odd_nr([1,2,3,4,5,6])
输出是:
1
3
5
[1, 3, 5, 6, 5, 6]
我无法弄清楚为什么 return 语句会给出这个输出。我尝试了不同的缩进,我尝试了 return 语句的不同变体,但我似乎无法让它工作。
我做错了什么?
【问题讨论】:
-
您只是返回原始列表而没有修改。
-
@juanpa.arrivillaga 不,他们正在修改它,你可以在输出中看到它。
-
@HeapOverflow 哦,天哪,是的,
for list1[i] in list1。 -
这读起来像是
while循环和for循环的奇怪混合体,避免语法错误更多是出于偶然而非有意。
标签: python list function return