定义:1.不同元素组成(指不可重复,可以用 此性质来去重,但是顺序不可能恢复原样)
s = set(li) a = set(['h','e','e'])
print(a)
#输出结果
{'h', 'e'}
2.集合是无序的
3.存放的都是不可变元素 (也就是说列表,和字典不可以作为元素存放在集合里)
4.集合也可以定义不可变的(s = format((1,2,3,4,5)))
在集合里可以增加,删除,不可以修改
定义方法
s = {1, 2, 3, 4}
a = set("hello")
print(a)
#输出结果
('h','e','l','o')
-
集合的方法
-
添加(add()方法一次只能添加一个值,用update()来可以一次添加多个,update()是重新更新集合的意思
- add()
a = set(['h','e','l']) a.add('b') a.add(3) print(a) #结果 {3, 'b', 'e', 'l', 'h'}
- update()
a = set(['h','e','l']) a.update('sa','b') #update会将后边的以迭代的方式取出来添加到集合里 print(a)
li = [1,2,3,4,5]
a.update(li) #后边可以是列表元组
print(a)
#结果
{'l', 'h', 's', 'b', 'e', 'a'}
{'h', 1, 2, 3, 4, 'a', 5, 'l', 'b', 's', 'e'}
2.清空 clear()
a = {1,2,3,4,5,6} a.clear() print(a) #结果 set()
3.拷贝copy()
4.删除 pop(),remove(),discard()
a = {1,2,3,4,5,6} b = a.pop() #随机从集合里删除一个值 但是可以得到删除的值 a.remove(4)# 指定删除某只但是如果删除的值不存在会报错 a.discard(5)# 如果删除的不存在并不会报错 print(a) #结果 {2, 3, 6}
-
关系测试
1.求两个集合的交集
l1 = {1, 2, 3, 4, 5, 6} l2 = {1, 2, 3, 7, 8, 9} print(l1.intersection(l2)) #相当于l1 & l2 #结果 {1, 2, 3}
2.并集
l1 = {1, 2, 3, 4, 5, 6} l2 = {1, 2, 3, 7, 8, 9} print(l1.union(l2)) #相当于l1 | l2 #结果 {1, 2, 3, 4, 5, 6, 7, 8, 9}
3.差集
l1 = {1, 2, 3, 4, 5, 6} l2 = {1, 2, 3, 7, 8, 9} print(l1.difference(l2)) # 相当于 l1 - l2 #结果 {4, 5, 6}
4.交叉补集
l1 = {1, 2, 3, 4, 5, 6} l2 = {1, 2, 3, 7, 8, 9} print(l1.symmetric_difference(l2)) #相当于 l1 ^ l2 并集减去两个相交的 #结果 {4, 5, 6, 7, 8, 9}
5....._uodate()这是指求完之后在再更新到前面的
l1 = {1, 2, 3, 4, 5, 6} l2 = {1, 2, 3, 7, 8, 9} l1.difference_update(l2)#相当于 l1 = l1 - l2 print(l1) #结果 {4, 5, 6}
-
集合也可以定义不可变的