我想知道如何在不中断Python循环的情况下返回值。
下面是一个示例:
def myfunction():
list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(list)
total = 0
for i in list:
if total < 6:
return i #get first element then it breaks
total += 1
else:
break
myfunction()
return
只会得到第一个答案然后离开循环,我不希望这样,我希望返回多个元素直到循环结束。
怎么解决这个问题,有什么解决办法吗?
使用generator是一种可能的方法:
现在,您可以通过调用
next()
来访问yield i
返回的所有元素:或者,在for循环中执行以下操作:
列表切片最容易表达您的需求:
或者创建另一个列表,并在函数结束时返回。
可以为此创建一个generator,这样就可以从生成器中
yield
值(使用yield
语句后,函数将成为生成器)。请参阅下面的主题以更好地了解如何使用它:
使用生成器的示例:
此外,您还可以在循环开始之前创建一个
list
,并将append
项创建到该列表,然后返回该列表,因此该列表可以被视为循环中“返回”的结果列表。使用list返回值的示例:
注意:在使用list的方法中,您必须知道函数将在
results
list中返回多少值,以避免too many values to unpack
错误相关问题 更多 >
编程相关推荐