(1,2,3)
a=(1,2,3) d={'a':20} print(d) {'a':20} s1=set(a) s1 (1,2,3)
(1,2,3)可放入dic与set,因为它是不变的。
(1,[2,3])
a=(1,[2,3]) d={a,20} #此处a不加''因为会识别成字符串
然后会报错,类型为list
s2=set(a)
再次报错,类型为list
总结:因为(1,2,3)是不变的,所以它放入dic和set都不会报错,但是tuple (1,[2,3]) 虽然它指向的元素没有变,都是1和一个list[2,3],但是由于list是可变的,但是其内部的元素可变,所以它不具备key所需要的不变性,从而无法放入dic与set
个人看法,也不知道是否正确,如果有错,望大佬指正。
你并没有把(1,2,3)放入dic中吧? a=(1,2,3) d={'a':20} 这两个a是不一样的
Sign in to make a reply
你在眉梢
(1,2,3)
(1,2,3)可放入dic与set,因为它是不变的。
(1,[2,3])
然后会报错,类型为list
再次报错,类型为list
总结:因为(1,2,3)是不变的,所以它放入dic和set都不会报错,但是tuple (1,[2,3]) 虽然它指向的元素没有变,都是1和一个list[2,3],但是由于list是可变的,但是其内部的元素可变,所以它不具备key所需要的不变性,从而无法放入dic与set
个人看法,也不知道是否正确,如果有错,望大佬指正。