Discuss / Python / tuple和list的关系

tuple和list的关系

Topic source

为什么s = set([1,2,3])不报错,[1,2,3]作为一个list也是可变的啊,而s = set((1,[2,3]))中1不可变,2、3可变

胡朵kura

#2 Created at ... [Delete] [Delete and Lock User]

set只是表示内部有1,2,3这3个元素,s = set((1,[2,3]))中1本来就不可变嘛,[2, 3]表面上看元素确实变了,不符合set不可变的规则,但其实变的不是set的元素,而是list的元素,具体可以看一下“使用list和tuple”那一章节

神之序曲

#3 Created at ... [Delete] [Delete and Lock User]

用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

Reply