Python 中 为什么 list.append() 返回 None

list.append() 方法返回 None 因为它改变了原始列表。 大多数在原地改变对象的方法在 Python 中返回 None。

a_list = ['www', 'zadmei']

a_list.append('.')
a_list.append('com')

print(a_list)  # 👉️ ['www', 'zadmei', '.', 'com']

Python 中 为什么 list.append() 返回 None

list.append() 方法将一个项目添加到列表的末尾。

该方法在改变原始列表时返回 None 。

如果我们需要通过将值附加到现有列表来获取新列表,请使用加法 + 运算符。

a_list = ['www', 'zadmei']

new_list = a_list + ['com']

print(new_list)  # 👉️ ['www', 'zadmei', 'com']

print(a_list)  # 👉️ ['www', 'zadmei']

我们还可以使用带有布尔值或运算符的 list.append() 方法将值附加到列表并返回列表对象。

a_list = ['www', 'zadmei']


same_list = a_list.append('com') or a_list
print(same_list)  # 👉️ ['www', 'zadmei', 'com']

print(a_list)  # 👉️ ['www', 'zadmei', 'com']

表达式 x 或 y 如果为真则返回左边的值,否则返回右边的值。

list.append() 方法将值添加到列表的末尾并返回 None,因此返回后备值。

或者,我们可以使用可迭代解包运算符通过将值附加到现有列表来获取新列表。

a_list = ['www', 'zadmei']

new_list = [*a_list, 'com']

print(new_list)  # 👉️ ['www', 'zadmei', 'com']

print(a_list)  # 👉️ ['www', 'zadmei']

* 可迭代解包运算符使我们能够在函数调用、推导式和生成器表达式中解包可迭代对象。

example = (*('a', 'b'), 'c')

# 👇️ ('a', 'b', 'c')
print(example)

解压现有列表后,我们可以将一个或多个值添加到列表中。

不要尝试将调用 append() 、insert() 或 extend() 的结果分配给变量,因为改变原始对象的方法最常返回 None。

如果一个方法返回 None,那么它就地改变一个对象。

相反,大多数返回 None 以外的值的方法通常会返回一个新对象并且不会改变原始对象。