Discuss / Python / 可变对象

可变对象

Topic source

不是说set中必须存放不可变对象吗? 那么在定义set时,为什么用的是s = set([1,2,3,4]),其中[1,2,3,4]是list呀? 我的理解是s = set([a,b,c,d]),其中a,b,c,d不能为可变对象对吗? 还有当只有一个元素时可以用s=set(a)直接定义?

廖雪峰

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

创建set要求传入list作为参数,不是说set里面存的是list

意思是把list中的元素都复制一遍到set中吗?

廖雪峰

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

set()只是一个函数,函数的参数是一个list,函数的返回值是set类型的对象

廖雪峰

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

这和tuple函数是一样的:

a = tuple([1, 2, 3])

传入参数是list,返回类型是tuple

廖雪峰

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

继续往后看,可以发现,参数只要求是Iterable就可以


  • 1

Reply