在函数中创建列表

2024-05-16 21:15:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在函数中创建一个列表,进行一些处理并返回该列表。代码如下:

def fibo(num):
    fib = [1,2]
    i =2
    while fib[-1] <int(num):
        fib = fib[i-1]+fib[i-2]
        i+=1
    return fib

在调用函数时,我发现

while fib[-1] <int(num):
TypeError: 'int' object is not subscriptable

为什么会引起这个问题?我不能在Python中的函数中创建列表吗?你知道吗

编辑:我看到很多人对我的问题投反对票。有人能告诉我为什么我的问题得到这么多反对票吗。这将帮助我提出正确的问题并帮助社区:)


Tags: 函数代码列表returnobjectisdefnum
3条回答

fib.append(fib[-1] + fib[-2])替换fib = fib[i-1]+fib[i-2],代码将是正确的。你知道吗

正如他们在注释中提到的,您的行fib = fib[i-1]+fib[i-2]正在将列表fib转换为int,您希望将其附加到列表中,以便代码正常工作。你知道吗

def fibo(num):
    i =2
    fib = [1, 2]

    while fib[-1] < int(num):
        fib.append(fib[i-1]+fib[i-2])
        #fib = fib[i-1] + fib[i-2]
        i+= 1
    return fib

result=fibo(9)
print(result)

我认为在覆盖列表时会出现错误。你知道吗

你很可能想要

fib.append(fib[-1]+fib[-2])

而不是

fib = fib[i-1]+fib[i-2]

相关问题 更多 >