天天看点

集合常用操作

'''集合的方法
set1.add()          set1.update()       set1.copy()
set1.pop()          set1.remove()       set1.discard()
set1.clear()        set1.union()    
          
set1.issubset()     set1.issuperset()   set1.isdisjoint()
set1.difference()   set1.difference_update()    
set1.intersection() set1.intersection_update()
set1.symmetric_difference()     set1.symmetric_difference_update()
'''


set1 = {1, 2, 3}
# print(type(set1))
# 集合元素不得重复
# # 集合作用:  列表去重
list1 = [1, 2, 3, 2, 1, 3, 4, 'ppp']
list2 = list(set(list1))
print(list2)
print(type(list2))

# 空集合  set()
set2 = {}  # 字典
print(type(set2))
set3 = set()          # 空集合避免和字典搞混得用这种方式创建
print(type(set3))

# add():添加一个数据
set1.add(1000)    # 同样添加的数随机放
print(set1)
# print(set1[0]) # 集合没有下标,不支持排序,无序

# update() # 追加多个数据,参数是一个列表
set1.update([1000])
set1.update([1000, 2000, 3000])   # update()里面添加的是一个序列,注意这里是无序的添加
set1.update('python')             # 每次添加的位置不一样
print(set1)

# remove():没有这个数据是报错
set1.remove(1000)                 # 同之前的remove(要移除的数据),没有会报错
print(set1)
# discard(): 删除指定数据,如果没有这个数据,不做任何事
set1.discard('p')
print(set1)
# pop():返回值,集合中,用pop()删除数据,删除的是第一个数据
num = set1.pop()
print(num)
print(set1)

# 集合推导式
# 列表推导式  字典推导式  集合推导式

set3 = {i for i in range(10) if i % 2 == 0}
print(set3)


# & 交集
set10 = {1, 2, 3, 4}
set11 = {2, 3, 4, 5, 6}
print(set10 & set11)

# | 并集(包含所有不重复数据)
print(set10 | set11)
# print(set10 | list1)       # 符号操作
print(set10.union(list1))    # union()具有相同的方法
print(set10.union(set11))

# - # 差集:取前面这个集合有的数据,后面没有的数据
print(set10 - set11)
print(set11 - set10)