我在考慮內置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