根据列表中每个元素的索引号返回一个值



我正在尝试使用函数识别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

最新更新