如果说元组(tuple)算是列表(list)和字符串(str)的杂合,那
么集合(set)则可以堪称是list和dict的杂合。
通过{}无法创建含有列表或者字典类型对象
元素的集合。
认真阅读报错信息,有这样的词汇:“unhashable”,在理解这个词
之前,先看它的反义词“hashable”,很多时候翻译为“可哈希”,其实它
有一个不是音译的名词“散列”。如果我们简单点理解,某数据“不可哈
希”(unhashable)就是其可变,如列表和字典都能原地修改,就是
unhashable。否则,不可变的,类似字符串那样不能原地修改的就是
hashable(可哈希)。
remove(obj)类似的还有discard(obj)
前者没有就报错,后者没有就不执行
集合里的“东西”叫作元素。若然x是集合A的元素,记作x∈A。
a.intersection(b) 交集 a & b
a.union(b) 并集 a|b
c.issubset(a) 子集 c < a
a.issuperset(c) 超集 a>c a是c的超集
a.difference(b) 差补 a-b a去掉交集后的集合
a.symmetric_difference(b) a和b的对称差集,就是a\b除了交集后的集合