声明集合:set() 集合具有元素不重复的特点
创建空集合,只能使用set()
应用:如果将一个列表快速去重 set()
s1 = set() # 创建空集合,只能使用set()
s2 = {1,3,7} # 字典:{key:value, key:value, ...} 集合 {元素1,元素2,元素3,....}
# 应用:如果将一个列表快速去重 set() 集合具有元素不重复的特点
list1 = [3,5,8,9,1,8,4,2,8,9]
s3 = set(list1)
print(s3) # {1,2,3,4,5,....} 排好序的,不重复的集合
增删改查:
增加 :
add() 添加一个元素
s1 = set()
s1.add("hello")
s1.add("小猪佩奇")
s1.add('lucky')
print(s1) # 不重复,无序的
update() 可添加多个元素
# update() 可添加多个元素
t1 = ('凌志玲','言承旭')
s1.update(t1)
print(s1)
删除:
remove() 如果元素存在则删除,不存在则报错keyError
s1.remove('言承旭')
pop() 随机删除(一般删除第一个元素)
s1.pop()
clear() 清空
discard() 类似remove() 在删除不存在的元素时不会报错
"""
1.产生10个1-20的随机数,去除里面的重复项
2. 键盘输入一个元素,将此元素从不重复的集合中删除
"""
import random
list1 = []
for i in range(10):
ran = random.randint(1,20)
list1.append(ran)
set1 = set(list1)
print(list1)
print(set1)
num = int(input('输入一个数字:'))
set1.discard(num)
print('删除之后结果:',set1)
# 方法二
set1 = set()
for i in range(10):
ran = random.randint(1,20)
set1.append(ran)
其他:符号操作
交集、差集、对称差集、并集:
差集: set1-set2 difference()
set3 = set1-set2
set3 = set1.difference(set2)
交集:set1&set2 intersection()
并集:set1 | set2 union()
对称差集: symmetric_difference() 两个集合中不重复的元素集合(两个列表中不一样的元素)
result = s1 ^ s2 (异或)
s1.difference_update(s2) 将差集赋值给了s1
xx_update() 求结果并赋值
总结: