python 集合的相关用法

集合是无序的,不重复的数据类型,可以改的数据类型 (不可哈希)但里面的数据 不能更改(可哈西)所以说集合是不能够作为字典的键

由于集合的元素不重复,所以可以用集合来消除重复元素.

s = [1,2,2,2,3,4]
s1 = set(s)
s = list(s1)
print(s) # [1,2,3,4]

集合的增

s = {1,2,3}
s.add('是啥') 
print(s)  # {'是啥', 1, 2, 3}

s.update(['没啥'])

print(s)  # {1, 2, 3, '是啥', '没啥'}
s.update('嘻嘻哈哈')
print(s) # {1, 2, 3, '是啥', '没啥', '嘻', '哈'}
'''
update 为可迭代对象 对象为括号里对象的最小元素 (str 和list 不同)
'''

集合的删

set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}
print(set1) 
set1.remove('alex')
print(set1) # {'wusir', 'ritian', 'barry', 'egon'}
set1 = set1.pop()
print(set1,s) # {'ritian', 'barry', 'egon'} wusir
set1.clear()
# 清空集合
del set1
#删除集合
''' remove 指定移除对象 pop 随机移除对象 '''

由于集合的元素不可更改,所以集合没有 改

由于集合的元素是无序的,所以没有集合的查

集合的其他操作

集合的交集(&     intersection ())

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

集合的并集( |    union())

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2)  # 并集 {1,2,3,4,5,6,7,8}
print(set1.union(set2))  # 并集 {1,2,3,4,5,6,7,8}

集合的差集(-    difference())

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}

print(set2 - set1)  # 差集 {6,7,8}
print(set1.difference(set2)) # 差集 {1,2,3}

集合的反交集(^     symmetric_difference() )

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}

print(set1.symmetric_difference(set2))  # {1, 2, 3, 6, 7, 8}
print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}

集合的子集和超集( <     isssubset()       issuperset())

set1 = {1,2,3}
set2 = {1,2,3,4,5,6}

print(set1 < set2)
print(set1.issubset(set2))  # 这两个相同,都是说明set1是set2子集。

print(set2 > set1)
print(set2.issuperset(set1))  # 这两个相同,都是说明set2是set1超集。

集合的不可变()

s = frozenset('barry')
print(s,type(s))  # frozenset({'a', 'y', 'b', 'r'}) <class 'frozenset'>