set集合
集合是无序的,不重复的数据集合,它里面的元素是可塔哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。
集合的特点:
1、它是无序的,且是不重复的
2、集合里的元素必须是可哈希的(int、str、bool、tuple),但是它本身是不可哈希的
3、集合不能更改其内部的元素,只能新增和删除
4、集合可以求交集、并集、差集、反交集等
#利用集合去重 lis = [1,1,2,2,3,3,3,4,5,6,6,7] set1 = set(lis) lis = list(set1) print(lis) #[1, 2, 3, 4, 5, 6, 7]
集合的日常操作:
1、集合的创建
set1 = set({1,2,'alex'})
set2 = {'alex','wusir','egon'}
2、集合的增加
set1 = set({1,2,3})
#1、set.add(obj) 添加一个元素
set1.add('wukong')
print(set1) #{'wukong', 1, 2, 3}
#2、set.update(seq) 迭代着将每一个元素逐一添加进去
set1.update('abc')
print(set1) #{1, 2, 3, 'wukong', 'c', 'a', 'b'}
3、集合的删除
#删除集合元素
set1 = {'alex','wusir','ritian','egon','barry'}
#1、set.remove(obj) 按照元素去删除
set1.remove('ritian')
print(set1) #{'alex', 'egon', 'barry', 'wusir'}
#2、set.pop() 随机删除某个元素
set1.pop()
print(set1) #{'wusir', 'egon', 'alex'}
4、清空集合、删除集合
set1 = {'alex','wusir','ritian','egon','barry'}
#1、清空集合 set.clear()
set1.clear()
print(set1) #set()
#2、删除集合 del set
del set1
print(set1) #报错: name 'set1' is not defined
5、集合的查询
set1 = {'alex','egon','barry'}
for item in set1:
print(item, end=' ') #alex egon barry
6、集合的其它操作
6.1、交集
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
#1、使用 &
print(set1 & set2) #{4, 5}
#2、intersection()
print(set1.intersection(set2)) #{4, 5}
6.2、并集
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
#1、使用 |
print(set1 | set2) #{1, 2, 3, 4, 5, 6, 7, 8}
#2、union()
print(set1.union(set2)) #{1, 2, 3, 4, 5, 6, 7, 8}
6.3、反交集
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
#1、使用 ^
print(set1 ^ set2) #{1, 2, 3, 6, 7, 8}
#2、symmetric_difference()
print(set1.symmetric_difference(set2)) #{1, 2, 3, 6, 7, 8}
6.4、差集
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
#1、使用 -
print(set1 - set2) #{1, 2, 3}
print(set2 - set1) #{8, 6, 7}
#2、difference()
print(set1.difference(set2)) #{1, 2, 3}
6.5、子集与超集
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
#1、子集 <、issubset()
print(set1 < set2) #True
print(set1.issubset(set2)) #True
#2、超集 >、issuperset()
print(set2 > set1) #True
print(set2.issuperset(set1)) #True
7、frozenset()不可变集合,让集合变成不可变类型
set1 = {1,2,3}
set2 = frozenset(set1)
print(set2,type(set2)) #frozenset({1, 2, 3}) <class 'frozenset'>

浙公网安备 33010602011771号