python集合(set)
集合的特点:
- 符号:{},但是和字典不同,字典:{key:value,……},集合:{元素1,元素2,……}
- 元素不重复
- 关键字:set
- 作用:去重,查找快速
集合的声明
set1 = set()
print(type(set1))
set2 = {} # 这种方式是不能声明集合的,声明空集合只能使用上面那种方式
print(type(set2))
set3 = {1, 2}
print(type(set3))
运行结果:
集合的增删
set1 = {1, 2, 3, 4, 5}
print(set1)
# 增, 1. 内置函数add(), 如果元素已存在,则不会添加
set1.add(6)
print('add()后的集合: {}'.format(set1))
# 2. 内置函数update, 追加另一个集合中的不同元素
set1.update({6})
print('update()后的集合: {}'.format(set1))
set1.update({6, 4})
print('update()后的集合: {}'.format(set1))
# 删,内置函数:remove,dicard, pop, clear
# remove,如果元素存在则删除,不存在会报错
set1.remove(2)
print('remove(2)后的集合: {}'.format(set1))
# discard(),如果元素存在则删除,不存在也不会报错
set1.discard(2)
print('discard(2)后的集合: {}'.format(set1))
# pop,随机删除集合中的一个元素,一般删除第一个
set1.pop()
print('pop()后的集合: {}'.format(set1))
# clear,清空集合中的元素
set1.clear()
print('clear()后的集合: {}'.format(set1))
运行结果:
常用集合(set)给列表去重
list1 = {1, 2, 2, 3, 3, 3}
set1 = set(list1)
print(set1)
运行结果:
集合set具有查找快速的特点,常用函数__contains__()
set1 = {1, 2, 2, 3, 3, 3}
if set1.__contains__(1):
print('1在set1集合中!')
运行结果:
符号操作和内置函数求差集,交集和并集
# 支持的符号: -, &, |
# 不支持:+, *
set1 = {1, 2, 3, 4, 5}
set2 = {2, 3, 4, 5, 6}
set3 = set1 - set2 # 差集
print(set3)
print(set1.difference(set2)) # 内置函数求差集
set4 = set1 & set2 # 交集
print(set4)
print(set1.intersection(set2)) # 内置函数求交集
set5 = set1 | set2 # 并集
print(set5)
print(set1.union(set2)) # 内置函数求并集
运行结果: