求解 set 能否list
Topic source我的理解是:set([1,2,3])不是表示将[1,2,3]这个list放入set中,而是一种创建set的表达方法,但set(1,[2,3])就真的是意图创建由一个int和一个list构成的set了,这是不可接受的。再清晰一点讲,你可以尝试查看len(set([1,2,3])),会发现=3,相当于这个set中有3个key,每个key的类型应该都是int,而按你的理解,这个set中的key应该只是一个list,其len应该输出的是1。
我是这样理解的:list的命令是这样a=[1,2,3] ;tuple的命令是这样a=(1,2,3,);dict的命令是这样a={'A':1,'B':2,'C':3};set的命令是这样a=set([1,2,3])。这样一对比可以很明显看出set的set([ ])和list的[ ]、tuple的()、dict的{' ': }是并列关系。
- 1
fengdao2793
我看文章中写着,dict 和 set 类型差不多,并且key 都是 不可变对象。然后呢,也说了,list是可变的,就不能作为key。
但接下来刚讲到set的时候,直接举的第一个例子:
注意,传入的参数
[1, 2, 3]
是一个list,而显示的{1, 2, 3}
只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不 表示set是有序的。。不是说set是不能用list做key的吗?这里不是在使用吗?
还有为何set([1,2,3]) 可以,但是set(1,[2,3])就不可以,按照规则,后者我能明白,部分是list,当然不可以,但是前者可以正常运行,我理解不了,哪位老师帮帮我,谢谢。