Python 3:为什么.append()在场景中工作而不是第二个?



我正在通过Codecademy学习Python 3,我很难理解这些代码之间的区别:

def append_size(lst):
lst.append(len(lst))
return lst

def append_size(lst):
return lst.append(len(lst))

两个函数都用print(append_size([23, 42, 108])

调用为什么第一个可以工作(打印[23,42,108,3])而第二个返回'None'?

发生这种情况是因为当您将某些内容append()到列表时不会返回任何内容。它只是将项目附加到列表中,如果打印它,则返回None。如:

l = [1,2,3]
print(l.append(4))
None

在本例中,4被附加到名为l的列表中。append的简单任务是将项目添加到末尾的列表中。因此,当您执行print(l.append(4))时,它显示为None

但是如果你尝试:

l = [1,2,3]
l.append(4)
print(l)
[1, 2, 3, 4]

这里输出

4之后添加l列表。

好的,那么append函数用于向现有列表添加项。

假设我有一个列表a = [1,2,3],我想把4添加到列表中。我将执行a.append(4),并将得到[1,2,3,4]的期望输出。

在第一个append_size函数中,代码首先将一个项目附加到原始列表中,然后返回列表,这就是为什么您得到[23, 42, 108, 3]的列表输出。但是在第二个函数中,代码返回lst.append而不是任何列表。因为append函数的值总是None,所以它返回None作为输出。

相关内容

最新更新