set元素不可變的理解
dict的第三個特點是作為 key 的元素必須不可變,Python的基本類型如字符串、整數、浮點數都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。------摘自dict的特點
set存儲的元素和dict的key類似,必須是不變對象,因此,任何可變對象是不能放入set中的。---摘自本文set的特點
以上兩者綜合,可以得出結論,set的元素不能包含list(代碼驗證過)。但是set整體本身包括大小和內容是可以修改的
tuple一旦創建就不能修改。不過list作為tuple的元素的時候list可變,但其實變的不是 tuple 的元素,而是list的元素。---摘自tuple
綜合,set和dict的key,二者的元素不能是list,但是可以增刪改。tuple可以包含list,但是tuple本身不能被增刪改。。
2018-08-15
In [24]: s = {(1,2),3}
In [25]: s = {([1],2),3}
---------------------------------------------------------------------------
TypeError? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Traceback (most recent call last)
<ipython-input-25-effcd7cfac36> in <module>()
----> 1 s = {([1],2),3}
TypeError: unhashable type: 'list'
2018-06-23
s = set(['Adam',( 'Lisa','Bart'), 'Paul'])