tuple和list的关系
Topic sourceset只是表示内部有1,2,3这3个元素,s = set((1,[2,3]))中1本来就不可变嘛,[2, 3]表面上看元素确实变了,不符合set不可变的规则,但其实变的不是set的元素,而是list的元素,具体可以看一下“使用list和tuple”那一章节
用s=set()来初始化一个set,set()中只能有一个参数,s=set([1,2,3])是指用list中的元素来建立一个set,因此set是{1,2,3},不是{[1,2,3]}
二楼什么表面不表面的,set((1,[2,3]))就是不符合set不变的规则,尽管t=(1,[2,3])可以成功执行。
总结起来就是:
set可以用一个list初始化,此时set中的元素不是list而是list中的每个元素
tuple可以包含list
包含list的tuple不能作为key
- 1
薛定谔的罗辑
为什么s = set([1,2,3])不报错,[1,2,3]作为一个list也是可变的啊,而s = set((1,[2,3]))中1不可变,2、3可变