python基础入门之set方法总结

本文最后更新于:December 21, 2020 am

1. 概述

  • 特点:一个无序不重复元素集
  • 功能:关系测试(并,交,差,对称差)和消除重复元素
  • 特殊:sets不支持indexing, slicing, 或其它类序列(sequence-like)的操作。

注:以下运算中,t与s都set集合,x为集合中的元素

2. set的初始化

1
2
3
4
5
6
set()               #空集合定义
Set1 = {"1", "2"}
set2 = set(list1)
Set3 =set(str) #例如:set('spam') ==set(['a', 'p', 's', 'm'])=={'a', 'p', 's', 'm'} str-->字符list-->set
t=s #t为集合s的一个引用
t=s.copy() #t为集合s的一个深复制

3. 基本操作(增,删,查,改)

A. 增加

1
2
t.add(x)            # 添加一项  
s.update(t) # 在s中添加多项

B. 删除

1
2
3
4
s.remove(x)         #删除集合中的元素 x,返回集合 , 如果不存在则引发 KeyError  
s.discard(x) #删除集合中的元素 x,返回集合,如果不存在返回集合本身
s.pop() #删除集合中的任一不确定的元素, 返回集合,如果为空则引发 KeyError
s.clear() #清空集合

C. 查看

1
2
len(s)             #set 的长度  
hash(s) #返回 s 的 hash 值

4. 逻辑运算

1
2
3
4
5
6
7
8
9
10
11
a = t | s          # t 和 s的并集   s.union(t)  
b = t & s # t 和 s的交集 s.intersection(t) )
c = t – s # 求差集(项在t中,但不在s中) s.difference(t)
d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) s.symmetric_difference(t)
s|=t # 将t添加到s中 s.update(t)
s <= t #s是t的子集 返回bool s.issubset(t)
s >= t #s是t的父集 返回bool s.issuperset(t)
s==t #s与t互为子集
s!=t #集合s与t不相等
x in s # x 在集合 s 中 返回bool
x not in s # x 不在集合 s 中 返回bool

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!