>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
但:
>>> [1, 2, 3].append(4)
>>>
为什么listPython 中的方法(例如insert和append)只适用于已定义的变量?
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
但:
>>> [1, 2, 3].append(4)
>>>
为什么listPython 中的方法(例如insert和append)只适用于已定义的变量?
在第二个示例中,没有打印任何内容,因为append在列表上调用了 (请注意实际上执行了附加),返回None。
或者,您应该提到这a.append(4)也给了您一个空白行(如您的第一个示例所示),并且第一个代码示例的最终输出是表达式结果的a表示,而不是a.append('4')表达式。
在这两种情况下,调用后都不会打印任何内容append,因为它是None.
list.append返回None。 a.append('4')也没有打印任何东西,因为返回的东西None不会在交互式解释器中打印任何东西......
请注意,您的第二个方法调用确实有效。它附加'4'到列表中,您将永远看不到它,因为您会立即失去在您创建的列表中拥有的任何句柄。
它确实有效。它只是不打印任何东西,就像不打印任何东西一样a.append(4)。只是因为您将列表保存为变量,您才能显示其新值。
并不是列表方法仅适用于已定义的变量。就是 list的指定方法append在更改相关列表的内部状态时总是返回 None 。
Another way to concatenate lists:
>>> [1, 2, 3] + [4]
[1, 2, 3, 4]
Note that in this case, a new list is created and returned. list.append adds an item to an existing list and does not return anything.
该函数仅适用于已定义的变量,因为这就是它的缩进工作方式。从python 文档中:
list.append(x)
在列表末尾添加一个项目;相当于
a[len(a):] = [x]。
请注意,在返回值并且函数不会引发异常的意义上,它确实“起作用”。但是结果会丢失,因为您没有参考修改后的列表。
!- 所以在这种情况下该函数可能会被调用append!。这样的命名约定有助于使函数的意图更加清晰。