集合(set)是一个无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合。

注意:创建一个空集合必须用 **set()** { } 是用来创建一个空字典

  1. set1 = {value1,value2,...} # value任意
  2. # or
  3. set(value) # 其中的value必须是可迭代对象,不能是数字

  1. # 末尾加入
  2. s = set()
  3. s.add('1') # {'1'}

  1. # 将元素从集合中移除,如果元素不存在,则会发生错误
  2. s.remove('3') # 报错
# 如果元素不存在,不会发生错误
s.discard('3')
# 随机删除集合中一个元素,因为集合无序
s.pop()

update(),参数可以是列表,元组,字典等数据类型

set1 = set(("Google", "Runoob", "Taobao"))


set1.update({1,3})
print(thisset)            # {1, 3, 'Google', 'Taobao', 'Runoob'}


set1.update([1,4],[5,6])  
print(thisset)            # {1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}

遍历

set1 = set(range(1, 6))

for elem in set1:
    print(elem ** 2, end=' ')     # 1 4 9 16 25 36

集合运算

python-set.png

# 初始化数据
a = {1, 2, 3, 4, 5, 6}
b = set(range(1, 10))    # 1 - 9, 不包含10

并集

print(set1 | set2)

print(set1.union(set2))

交集

print(set1 & set2)

print(set1.intersection(set2))

差集

print(set1 - set2)

print(set1.difference(set2))

对称差

print(set1 ^ set2)

print(set1.symmetric_difference(set2))

子集

# set1 是 set2 的 子集
print(set1 <= set2)

print(set1.issubset(set2))

超集

# set2 是 set1 的 超集
print(set2 >= set1)

print(set2.issuperset(set1))

常见方法

方法 描述
add() 为集合添加元素
clear() 移除集合中的所有元素
copy() 拷贝一个集合
pop() 随机移除元素
remove() 移除指定元素
union 返回两个集合的并集
update() 给集合添加元素
difference() 返回多个集合的差集
difference_update() 移除集合中的元素,该元素在指定的集合也存在。
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 删除集合中的元素,该元素在指定的集合中不存在。
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset() 判断指定集合是否为该方法参数集合的子集。
issuperset() 判断该方法的参数集合是否为指定集合的子集
symmetric_difference() 返回两个集合中不重复的元素集合。
symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。