已知:
>>> a = [1,2,3,4]
>>> b = a[1:3]
b = [2, 3]
>>> b[0] = 99
b = [99, 3]
a = [1, 2, 3, 4]
由此可知,黃色那行的值並不會改動到a陣列,而是創造一個副本了
我的問題是 :
這個副本是(1) 在我呼叫a[1:3]時就被創造了?
抑或(2) 直到我改動b[0]才被創造,若不改動就永遠參照本來陣列
因為最近遇到比較高的性能要求 需要弄清楚@@
第一次po文 請大家多多指教
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2015-07-13 17:53:00沒看 source, 但我猜應該不會, 這是很常見的最佳化如果真的需要保證, 可以改用 memory view 來替代喔我錯了, 好像會 shallow copy, 沒有 implicit sharing