Discuss / Python / set list 可变对象

set list 可变对象

Topic source

brigthing

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

老师说的是set需要里面要放入一个list集合作为参数,像这样s=set([1,2,3])

但是list不是可变对象吗?而set和dict一样不能放入可变对象。这??

,或者我这样 lis=['a','b','c'],ss=set(list),一样的是正确的呢,

感觉哪里没理解或者矛盾了呢???

今夜鞍

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

我个人的理解是set里你写s=set([1,2,3])的是但实际上的key是整数1、2、3而不是list,也就是说最后s是{1,2,3},这个大括号里是不能出现变量的

nstart0902

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

要创建一个set,需要提供一个list作为输入集合,这个只是创建set的方法,仅此而已(将list的每个元素作为set的每个元素)。举例:s=set(['a','b','c']) 可以创建出{'a','b','c'} 这个set的元素都是不可变对象,当然合法。如果s=set(['a',['b','c']]),就不行了,因为list的第2个元素是个可变对象。并且,如果是使用tuple作为dict或者set的key,(tuple是不可变对象),必须保证tuple的每个元素本身也不可变,s=set([(1,2,3)])这样是可以的,但是s=set([(1,[2,3])])这样不行。因为tuple(1,2,3)是每个元素本身也不可变,而tuple(1,[2,3])的第二个元素是可变的。


  • 1

Reply