為什么key不能用包含list的tuple?
教程上說key必須用不可變元素,所以不能用list,可用整數浮點字符串和tuple等
但我用了tuple嵌套list就不行了,即使tuple里有list,但tuple本身不還是不可變元素嗎?
以下是我自己在電腦上試一試的代碼
d= {
? ? ('A', ['X']): 78
}
print d
結果報錯了
TyoeError:unhashable type: 'list'
教程上說key必須用不可變元素,所以不能用list,可用整數浮點字符串和tuple等
但我用了tuple嵌套list就不行了,即使tuple里有list,但tuple本身不還是不可變元素嗎?
以下是我自己在電腦上試一試的代碼
d= {
? ? ('A', ['X']): 78
}
print d
結果報錯了
TyoeError:unhashable type: 'list'
2017-09-05
舉報
2017-09-05
tuple 的不變指的是 tuple的每個元素,指向永遠不變
當使用 list 作為 tuple 的元素 這個 tuple 實際上已經是一個可變的 tuple 了 key要求從指向到內容都必須不可變
2018-08-24
tuple只是指向不變,指向一對象,就不能指向其他的對象了
2017-09-05
tuple所謂的“不變”是說,Tuple的每個元素,指向永遠不變,即指向一個對象后,就不能再指向其他對象了。如果要讓tuple作為key,就要創建一個內容也不便的tuple,即tuple的每一個元素本身也不能變。
2017-09-05
回答有錯誤,抱歉
2017-09-05
tuple不是不可變元素,你還是可以對它進行add和remove的改變