我在考虑内置Python List方法时遇到问题。Python LIST函数不返回新列表
当我学习Python时,我一直认为Python的mutators,因为任何值类的mutators都应该做的,返回它创建的新变量。
拿这个例子:
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函数的很好的参考。如果任何人都可以找到所有列表mutator方法的实际定义(包含返回值),请告诉我。我所能找到的只是这个页面:http://docs.python.org/tutorial/datastructures.html
首先,你要查找的文档http://docs.python.org/library/stdtypes.html#mutable-sequence-types – 2012-04-02 20:23:16
“当我了解到的Python,我一直以为Python的改变者,就像任何值类的mutators应该做的一样,返回它创建的新变量。“ - 你在哪里学习?事实上,在Python中拥有可变状态的对象是非常常见的,而列表就是其中之一。 (字符串不是) – millimoose 2012-04-02 20:39:18