Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中根据自己的输出生成迭代列表_Python_Python 2.7_Iteration_Unfold - Fatal编程技术网

在Python中根据自己的输出生成迭代列表

在Python中根据自己的输出生成迭代列表,python,python-2.7,iteration,unfold,Python,Python 2.7,Iteration,Unfold,对不起,这似乎是一个基本问题,但我在任何地方都找不到。在Python2中,我想将一个单变量函数应用于它自己的输出,存储所有步骤的列表,即如果f(x)返回x*x,然后从2开始迭代,我需要 [2,4,16,256,65536,…] 理想情况下,我需要传入我的函数f、第一个输入1,以及我希望保留的迭代次数 在某种意义上,我想这与函数式编程中的reduce相反,与unfold有些相似 做这件事的一个天真的方法是写作 out=[2] 对于x范围内的x(5): out.append(f(out[-1]))

对不起,这似乎是一个基本问题,但我在任何地方都找不到。在Python2中,我想将一个单变量函数应用于它自己的输出,存储所有步骤的列表,即如果f(x)返回x*x,然后从2开始迭代,我需要

[2,4,16,256,65536,…]

理想情况下,我需要传入我的函数
f
、第一个输入
1
,以及我希望保留的迭代次数

在某种意义上,我想这与函数式编程中的
reduce
相反,与
unfold
有些相似

做这件事的一个天真的方法是写作

out=[2]
对于x范围内的x(5):
out.append(f(out[-1]))

做这件事的好方法是什么? 非常感谢。

您需要的是一个“”。比如说,

def f(x, n):
    for _ in range(n):
        yield x
        x = x * x

l = list(f(2, 5))

print(l)             # [2, 4, 16, 256, 65536]

您需要的是一个“”。比如说,

def f(x, n):
    for _ in range(n):
        yield x
        x = x * x

l = list(f(2, 5))

print(l)             # [2, 4, 16, 256, 65536]

您需要的是一个“”。比如说,

def f(x, n):
    for _ in range(n):
        yield x
        x = x * x

l = list(f(2, 5))

print(l)             # [2, 4, 16, 256, 65536]

您需要的是一个“”。比如说,

def f(x, n):
    for _ in range(n):
        yield x
        x = x * x

l = list(f(2, 5))

print(l)             # [2, 4, 16, 256, 65536]

理想情况下,我需要传入函数f、第一个输入1和 我希望保留的迭代次数

这是一个接受函数、起始值和迭代计数的展开函数

def unfold(function, start, iterations):
    results = []
    for _ in range(iterations):
        results.append(start)
        start = function(start)

    return results
您可以按预期使用:

>>> print unfold(lambda x: x*x, 2, 5)
[2, 4, 16, 256, 65536]
理想情况下,我需要传入函数f、第一个输入1和 我希望保留的迭代次数

这是一个接受函数、起始值和迭代计数的展开函数

def unfold(function, start, iterations):
    results = []
    for _ in range(iterations):
        results.append(start)
        start = function(start)

    return results
您可以按预期使用:

>>> print unfold(lambda x: x*x, 2, 5)
[2, 4, 16, 256, 65536]
理想情况下,我需要传入函数f、第一个输入1和 我希望保留的迭代次数

这是一个接受函数、起始值和迭代计数的展开函数

def unfold(function, start, iterations):
    results = []
    for _ in range(iterations):
        results.append(start)
        start = function(start)

    return results
您可以按预期使用:

>>> print unfold(lambda x: x*x, 2, 5)
[2, 4, 16, 256, 65536]
理想情况下,我需要传入函数f、第一个输入1和 我希望保留的迭代次数

这是一个接受函数、起始值和迭代计数的展开函数

def unfold(function, start, iterations):
    results = []
    for _ in range(iterations):
        results.append(start)
        start = function(start)

    return results
您可以按预期使用:

>>> print unfold(lambda x: x*x, 2, 5)
[2, 4, 16, 256, 65536]

如果您的第一个输入是
1
,则输出是[1,1,1,…],对吗?如果您的第一个输入是
1
,则输出是[1,1,1,…],对吗?如果您的第一个输入是
1
,则输出是[1,1,1,…],对吗?顺便说一句,对于Python 2.BTW,请使用
xrange()
,对于Python2.BTW使用
xrange()
,对于Python2.BTW使用
xrange()
,对于Python2.BTW使用
xrange()
。我不明白这怎么会比我在问题中的代码示例更好,除了你把它抽象成一个独立的函数之外?你也可能想用xrange而不是range。我不明白这怎么会比我在这个问题上的代码示例更好,除了你把它抽象成一个独立的函数之外?你也可能想用xrange而不是range。我不明白这怎么会比我在这个问题上的代码示例更好,除了你把它抽象成一个独立的函数之外?你可能还想用xrange而不是range。我不明白这怎么会比我在问题中的代码示例更好,除了你把它抽象成一个独立的函数之外?你可能还想用xrange而不是range。