如何在不中断循环的情况下返回值?
作者:互联网
我想知道如何在不破坏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,这样就可以从生成器中产生值(使用yield语句后,您的函数将成为生成器).
请参阅以下主题,以更好地了解如何使用它:
> Generators
> What does the “yield” keyword do in Python?
> yield and Generators explain’s
使用生成器的示例:
def simple_generator(n):
i = 0
while i < n:
yield i
i += 1
my_simple_gen = simple_generator(3) // Create a generator
first_return = my_simple_gen.next() // 0
second_return = my_simple_gen.next() // 1
另外,您可以在循环开始之前创建一个列表,然后将项目追加到该列表中,然后返回该列表,因此可以将此列表视为循环内“返回”的结果列表.
使用列表返回值的示例:
def get_results_list(n):
results = []
i = 0
while i < n:
results.append(i)
i += 1
return results
first_return, second_return, third_return = get_results_list(3)
注意:在使用列表的方法中,您必须知道函数将在结果列表中返回多少个值,以避免太多的值导致解包错误
标签:python,function,return-value 来源: https://codeday.me/bug/20191012/1897764.html