gpt4 book ai didi

python - 如何正确组合函数和列表生成器?

转载 作者:行者123 更新时间:2023-11-28 20:30:15 24 4
gpt4 key购买 nike

据我所知,列表生成器比使用 .append() 快一点。所以我只是想知道如何使用生成器来实现这段代码。重要的是我最终需要获得列表。

这是原始脚本:

x=4
def factorial(n):
f=1
list = []
for n in range(1, n+1):
f = f * n
list.append(f)
return list
testList = factorial (x)
for i in range(x): print(testList[i], end = ' ')

我已经试过了:

f=1
n=4
def fun(n):
f=f*n
return f
testList = [fun(f) for n in range(1, n+1)]

这绝对不是这样做的方法(程序说在函数 f 中没有声明。总的来说......只是试过这个来测试)也试过这个:

testList = [lambda f : f*n for n in range(1, n+1)]

但我通过这种方式得到的只是函数列表。我仍然可以得到阶乘,但不是它应有的方式。

这对我来说有点问题,因为有一个缓冲区变量(原始脚本中的f)。

最佳答案

您可以使用 global 关键字以这种方式实现它:

f = 1
n = 4

def fun(n):
global f
f = f * n
return f

testList = [fun(n) for n in range(1, 10+1)]
print(testList)

# [1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]

关于python - 如何正确组合函数和列表生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58063475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com