目标

  • 创建集合
  • 集合数据的特点
  • 集合的常见操作

集合

创建集合

创建集合使用{}set(), 但是如果要创建空集合只能使用set(),因为{}用来创建空字典。

特点:

  1. 集合可以去掉重复数据;
  2. 集合数据是无序的,故不支持下标

示例:

s1 = {10, 20, 30, 40, 50}
print(s1)

s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2) # 打印时 自动去除重复的数据

s3 = set('abcdefg')
print(s3)

# 创建空集合
s4 = set()
print(type(s4)) # set

s5 = {}
print(type(s5)) # dict
image-20190318104620690

集合常见操作方法

增加数据

  • add(),追加单个数据

s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1) # {100, 10, 20}

因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。

  • update(), 追加的数据是序列

s1 = {10, 20}
# s1.update(100) # 报错
s1.update([100, 200]) # 增加列表序列
s1.update('abc') # 增加单个字符串序列,会拆分
s1.update(['anzhiyu', 'anyw']) # 增加列表序列,其中数据类型是字符型,不会拆分
print(s1)

image-20190318121424514

删除数据

  • remove(),删除集合中的指定数据,如果数据不存在则报错。

s1 = {10, 20}

s1.remove(10)
print(s1)

s1.remove(10) # 报错
print(s1)
  • discard(),删除集合中的指定数据,如果数据不存在也不会报错。

s1 = {10, 20}

s1.discard(10)
print(s1)

s1.discard(10)
print(s1)
  • pop(),随机删除集合中的某个数据,并返回这个数据。

s1 = {10, 20, 30, 40, 50}

del_num = s1.pop()
print(del_num)
print(s1)

查找数据(判断数据是否在集合序列)

  • in:判断数据在集合序列

  • not in:判断数据不在集合序列

s1 = {10, 20, 30, 40, 50}

print(10 in s1) # True
print(10 not in s1) # False

总结

  • 创建集合

    • 有数据集合
    s1 = {数据1, 数据2, ...}
    • 无数据集合

    s1 = set()
  • 常见操作

    • 增加数据
      • add()
      • update()
    • 删除数据
      • remove()
      • discard()