Python中list的append用法一列解析

def fibonacci(i):

    a, b = 0, 1

    j = 0

    fib = []

    while j < i:

        a, b = b, a+b

        j+=1

        fib = fib.append(a)

    return(fib)

a = fibonacci(10)

print(a)

以上的python run之后提示 'NoneType' object has no attribute 'append'。而当将以上代码中的fib = fib.append(a)改为fib.append(a)之后,则正确。

那么为什么不能将fib append之后的list重新赋值给fib呢? 让我们来看看一下代码的输出值:

list = [1, 2, 3, 4]

a =  list.append(5)

print(a)

print(list)

运行之后输出结果为:

None

[1, 2, 3, 4, 5]

因此,我们可以看到list.append[5]操作是将5加到list的元素中,但是list.append[5]返回值为None。这里我们需要了解append的操作原理,append(同理还有extend,insert)是对列表增加元素的操作,但是它本身没有返回值(或者说返回值为None),因此a=a.append[5]如果输入结果是None,而并非我们期待的添加了元素5之后的list。

你可能感兴趣的:(Python中list的append用法一列解析)