Python:如何在循环中返回所有结果?

时间:2014-01-30 09:59:04

标签: python loops

def pop(n):
    result,counter = 0,0
    while counter<=n:
        result=(2**counter)
        counter=counter+1
    return result

example:
>>>pop(4)
16

我如何返回所有结果?像:

1
2
4
8
16

2 个答案:

答案 0 :(得分:4)

您可以将结果存储在列表中:

def pop(n):
    result,counter = [],0
    while counter<=n:
        result.append(2**counter)
        counter=counter+1
    return result

现在结果将是所有权力的列表。

或者,您可以创建一个生成器yield多个结果

def pop(n):
    result,counter = 0,0
    while counter<=n:
        yield 2**counter
        counter=counter+1

现在,如果您执行list(pop(4)),那么您将获得所有结果的列表

答案 1 :(得分:1)

pythonic方式将是这样的:

def pop(n): return [2**x for x in range(n)]