集合(set)
特性:唯一性、无序性
无序性:
集合推导式:
s = {s for s in {"fishc"}}
输出结果无序,可能为{'h','c','s','i','f'}
由于集合是无序的,所以不能通过下标索引值对集合进行访问,但是可以使用in或not in判断某字符是否在集合内
可以通过迭代遍历集合,但是输出的结果也是无序的。
唯一性:
若集合中出现了两个相同的值,则最后会得到一个去重之后的结果。
set([1,1,2,3,5]) ,输出的结果为{1,2,3,5}
判断方法:s= [1,1,2,3,5] ,len(s) == len(set(s)) ,输出结果为false
使用isdisjoint方法判断两个集合是否存在交集。
使用issubset方法判断一个集合是否是一个集合的子集
使用isuperset方法判断一个集合是否是一个集合的超集
使用union方法使两个集合成为并集
使用intersection得到两个集合的交集
使用difference函数得到两集合的差集,eg:这里得到的差集是主集合的剩余元素。
使用symmetric_difference函数得到两个集合的差集,eg:这里得到的差集是两个集合共同的剩余元素。
使用||表示集合的并集,用法为:s|{1,2,3}|set("python")
使用&表示集合的交集,用法为:s&{1,2,3}&set("python")
使用减号-表示集合的差集,
使用脱字符^表示集合的对称差集
frozenset表示不可变的集合。
删除函数有:add、remove、pop、discard、clear函数,eg:pop函数弹出的集合中的元素是随机的。
python中大多数不可变的对象都是可哈希的,大多数可变对象都不可哈希。
字典中的键是可哈希的,而列表是不可哈希的,所以列表不能作为字典的键。
集合中的元素是可哈希的,而集合是不可哈希的,所以集合中的元素不能是集合。eg:集合嵌套可以使用frozenset,用法是:x =frozenset(x) ,y = {x,4,5}