對可變對象的疑慮點,請各位大佬指點迷津,多謝!
問題描述:
元組tuple的元素只能容納不可變對象,且其中的元素可以是列表list,因為實際存放的是列表(可變對象)的地址,只要這個可變列表的地址不變,就算列表中的元素變化了,也不能說是元組元素的變動。
字典dict的key不能是可變元素,因為需要用key去hash取值。如果此時key為列表(可變對象),則字典會報錯:TypeError: unhashable type: 'list'。
那么問題來了: 同樣是可變元素list,為什么在元組tuple里面作為元素值是合法的、是取地址的、是不可變的,但是在字典dict里面作為key的值就是非法的、是取值的、是可變的。
這樣的設計,感覺不符合使用上的一致性或直觀的理解性吧,因為規則不一致。
關于python中元組、字典的可變性。
慕田峪7331174
2019-02-17 17:33:36