特点:
不允许有重复元素,如果添加重复元素,则会自动过滤,可以进行交集、并集的运算。
创建集合
s1 = set() #空集合 不能是{},这是字典
s2 = {1,2,3,4}
print(s1)
print(set([30,40,50])) #通过列表创建
print(set((11,22,33))) #通过元组创建
print(set('hello')) #通过字符串创建
print(set({'name':'⼤宝','age':20})) #通过字典创建,得到⼀个键的集合
#注意:重复元素在set中会被⾃动过滤
集合操作
1 增加
add添加不可变元素
s1.add(5)
# s1.add([6,7]) #不能添加列表,列表和字典都是不可哈希的
s1.add((6,7)) #可以添加元组元素,元组是可哈希的
print(s1)
#set.update(s) s必须是可迭代的对象:列表、元组、字符串、字典
#update会把列表、元组、字符串打碎添加到集合中
s1 = {1,2,3,4}
s1.update([5,6])
s1.update((7,8))
s1.update('hello')
s1.update({'1':10,'2':20}) #将字典的键添加到s1
print(s1)
2. 删除
set.remove(elem)
set3 = {1,2,3,4,5,6}
set3.remove(4) #直接删除指定元素
print(set3)
print(set3.pop()) #删除任意元素,并返回该元素的值
print(set3)
set3.discard(10) #删除的元素不存在,不会报错
#set3.remove(10) #如果元素不存在,则报错:KeyError
3.元素个数
print(len(set3))
4 .成员操作
print(2 in set3) #True
5.并、交、差集
s1 = {1,2,3,4,5}
s2 = {3,4,5,6,7}
print(s1 | s2) #并
print(s1 & s2) #交集
print(s1 - s2) #差集
集合推导式
语法:{exp for var in iterable}
res = {x for x in range(2,10)}
print(res)