使用集合的三种方法,
1.使用花括号{},
2.使用集合推导式,
3.使用类型构造器,看例子:
集合是无序的,不能使用下标索引值来查找。使用迭代的方式来访问集合中的元素,
集合还有唯一性!可以用来去重。比如上面的例子中有多个z,但是它的输出只有一个z,如果输入数字也是同理,它只会出现一次,重复的会被去除。
如果你想要检测一个列表中是否存在相同的元素,可以这样做
集合可以用拷贝方法,实现浅拷贝,
检测两个集合是否相关,使用isdisjoint()方法来实现,
检测一个集合是否是另一个集合的子集,使用issubset()来检测
检测一个集合是否是另一个的超集,使用issuperset(),
超集:对于两个集合A,B,如果集合B中任意一个元素都是集合A中的元素,我们就说这两个集合有包含关系,称集合A为集合B的超集。
并集 union()方法,
交集 intersection()方法
差集 different() 方法
求对称差集,就是说对于两个A,B,先排除集合A和集合B的所有共同元素,由剩下的元素构成的集合,叫做A和集合B的对称差集 ,使用symmetric.difference()方法。
是用update(*others)来更新集合,
set用来创建集合,还可以用frozenset()来创建,但是它与set不同点是它不能改变,也就是说update对它不能更新,
还可以用add()方法来往集合中添加数据,,用remove()和discard()方法来删除集合中的元素,但是remove删的数据在集合中不存在,系统会报错,但discard不会报错,静默处理,,还可以用pop()方法来随机弹出元素,claer()方法让集合清空,变成空集合,
可哈希
对一个整数求哈希值它永远是自身值,如果两个对象的值是相等的比如1和1.0,他们的哈希值是相等的。使用方法hash()。一般来说对于不变的序列才可哈希,可以变的不能计算出哈希值,比如列表是可变的,它就是不可哈希的
想要用集合来嵌套,只能用frozenset来嵌套,set是可变的,是不可哈希的。