<分区>
我在考虑内置 Python 列表方法时遇到问题。
在我学习 Python 的过程中,我一直认为 Python 的修改器,就像任何值类修改器应该做的那样,返回它创建的新变量。
举个例子:
a = range(5)
# will give [0, 1, 2, 3, 4]
b = a.remove(1)
# as I learned it, b should now be [0, 2, 3, 4]
# what actually happens:
# a = [0, 2, 3, 4]
# b = None
这个列表修改器不返回新列表的主要问题是你不能随后进行多个修改。 假设我想要一个范围从 0 到 5 的列表,没有 2 和 3。 返回新变量的修改器应该能够像这样执行:
a = range(5).remove(2).remove(3)
很遗憾,这是不可能的,因为 range(5).remove(2) = None
。
现在,有没有办法像我想在我的示例中那样实际对列表进行多个突变?我认为甚至 PHP 也允许使用字符串进行这些类型的后续突变。
我也找不到关于所有内置 Python 函数的好引用。如果有人能找到所有列表修改器方法的实际定义(带有返回值),请告诉我。我只能找到这个页面:http://docs.python.org/tutorial/datastructures.html