Python 数据类型——集合

157 阅读2分钟

一、 集合的介绍

  1. 集合的元素要求必须不可变:数字、字符串、布尔值和元组
  2. 集合本身是可变数据
  3. 集合中的元素具有天然去重功能
  4. 集合的元素是无序
  5. 集合功能:去重、关系测试

二、 集合的创建

方法 1:
setvar = {'a',1,{"aaa"},True}
方法 2:
setvar = set(setvar1)

三、 集合的增删

集合的增

set1.add('bbb')
set1.update('ccc') #迭代增加

集合的删除

set1.remove('aaa') #删除某个固定元素
set1.pop() #随机删除
set1.clear()#清空集合
del set1 # 删除该集合

四、 集合的关系(高中数学知识)

1. 交集

1、 set1&set2

2、 Set1.intersection(set2)

2. 差集

  1. set1-set2、set2-set1

  2. set1.difference(set2)

3. 反交集

  1. set1^set2

  2. Set1.summetric_difference(set2)

4. 并集

  1. set1|set2

  2. Set1.union(set2)

5. 超集(父集?)

  1. set1>set2

  2. Set1.issuperset(set2)

6. 子集

  1. Set1 < set2

  2. Set1.issubset(set2)

五、 冰冻集合

冰冻集合:是不可变的,存在哈希值,好处是它可以作为字典的key,也可以作为其它集合的元素。缺点是一旦创建便不能更改,没有add,remove方法。

Set1 =frozenset(set2)

六、 其他方法

  1. in 判断一个元素是否在某个集合中
  2. 集合不支持加法运算(列表支持),但支持减法运算(差集)
  3. 对于一个重复无序列表,使用 set+list 方法,可以完成去重+排序,但是这个排序不一定对

七、 练习题

lst=[1,6,98,3,5,23,8,3,2,12,78,3,2,1,65,3,6,8,4,12,4,6,4,2,1,4,76,89,5,9]
print(list(set(lst))) #[1, 98, 3, 2, 5, 6, 65, 8, 4, 9, 12, 76, 78, 23, 89]
setvar = set(lst)
print(setvar) #{1, 98, 3, 2, 5, 6, 65, 8, 4, 9, 12, 76, 78, 23, 89}
lst1 = list(setvar)
print(lst1) #[1, 98, 3, 2, 5, 6, 65, 8, 4, 9, 12, 76, 78, 23, 89]
lst2=sorted(lst1,reverse=True)
print(lst2) #[98, 89, 78, 76, 65, 23, 12, 9, 8, 6, 5, 4, 3, 2, 1]