我正在尝试使用函数识别python列表中的第一个元素,最后一个元素和其他元素。如果它是第一个元素,我希望返回0,如果它是最后一个元素,我希望返回-1,其他元素应该返回2
我可以在不使用函数的情况下实现这一点,但是当我使用函数时,我没有得到想要的结果。请帮我一下。提前感谢
到目前为止,我所拥有的可以在下面的代码和截图中看到下面是不使用函数
的代码a= [1,2,3,4,5,6]
for i, x in enumerate(a):
if i==0:
number=0
elif i==len(a)-1:
number=-1
else:
number=2
print (number)
这里是期望的输出,它是在没有使用函数时得到的
下面是函数
中的相同代码def cs():
a= [1,2,3,4,5,6]
for i, x in enumerate(a):
if i==0:
number=0
elif i==len(a)-1:
number=-1
else:
number=2
print (number)
return (number)
cs()
是函数的输出。它只返回一个索引而不是六个
如果我尝试将print/return语句置于for循环之外,则只有最后一个元素返回值。
def cs():
a= [1,2,3,4,5,6]
for i, x in enumerate(a):
if i==0:
number=0
elif i==len(a)-1:
number=-1
else:
number=2
print (number)
return (number)
cs()
是在for循环
外加上print/return语句的函数输出您的查询-是否可以遍历整个列表并仍然使用返回语句?
我们用yield
代替return
来遍历整个列表。
def generator():
a= [1,2,3,4,5,6]
for i,x in enumerate(a):
if i==0:
yield 0
elif i==len(a)-1:
yield -1
else:
yield 2
gen_object = generator()
print(type(gen_object))
for i in gen_object:
print(i)
输出: -
<class 'generator'>
0
2
2
2
2
-1