[問題] list[:] & list 差別

作者: DearYoyoDon (yoshito)   2016-03-27 11:17:39
def _product_of_two_vectors_sample_(a, b):
if len(a[0]) != len(b):
return None
# Create the result matrix and fill it with zeros
output_list=[]
temp_row=len(b[0])*[0]
for r in range(len(a)):
作者: LiloHuang (十年一刻)   2016-03-27 11:25:00
temp_row[:] 會做出一份拷貝,反之則是參照原先的list>>> foo = [1,2,3]>>> id(foo)33920784>>> bar = foo>>> id(bar)33920784>>> bar = foo[:]>>> id(bar)33919424留意到了 object id 改變了嗎 :P
作者: ghostreporty (ghost)   2016-03-27 12:50:00
這有點像Java new的概念
作者: paulyanzi (消失)   2016-03-27 13:58:00
原來有 id 這個東西,id 這功能平常有什麼機會使用到嗎
作者: LiloHuang (十年一刻)   2016-03-27 15:01:00
當需要識別物件或者除錯時,就是使用 id(obj) 的場合而 CPython 剛好使用物件的記憶體位址來當作 id延伸閱讀官方文件 https://goo.gl/g3mzEZ
作者: DearYoyoDon (yoshito)   2016-03-28 01:32:00
大概懂了!! 感謝~ >////<
作者: ENEP (Moo)   2016-03-28 01:54:00
推 原來[:]會作copy 那dict有類似的作法嗎
作者: uranusjr (←這人是超級笨蛋)   2016-03-28 02:08:00
dict 直接呼叫 .copy() 即可

Links booklink

Contact Us: admin [ a t ] ucptt.com