python之集合

集合:可变的数据类型,他里面的元素是不可变的数据类型,无序,不重复
不可变是可哈希
set1 = set({1,2,3})
set2 = {1,2,3,[2,3],{'name':'alex'}} #集合元素不可变的 所以输出错误
print(set1)
print(set2)

增:
1.#add
set1.add('alex')
2.#update
set1.update('abc') #迭代增加 把a b c分别增加

删:
1.#pop
set.pop() #随机删除 有返回值
print(set1)

2.#remove
set.remove('alex') #按元素

3.#clear 清空
set.clear()

4.#del 删除整个集合

查:(只能for循环查)
for i in set1:
print(i)

交集:
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
set3 = set1&set2
print(set3)
print(set1.intersection(set2))

并集:
print(set1 | set2)
print(set2.union())

反交集:
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1^set2)
print(set1.symmetric_difference(set2))

差集:
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1-set2)# set1独有的
print(set1.difference())

子集:
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1<set2)
print(set1.issubset())#返回布尔值

超集:
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1>set2)
print(set1.issuperset())#返回布尔值
print(set1.issubset())#返回布尔值

去重(面试题):
li = [1,2,33,33,2,1,4,5,6,6]
set1 =set(li)
li = list(set1)
print(li)

frozenset不可变集合,让集合变成不可变集合:
s = frozenset('barry')
只读无序:
for i in s :
print(i)

原文地址:https://www.cnblogs.com/chif/p/9483433.html