我正在通过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作为输出。