Python set集合类型操作总结

yipeiwu_com5年前Python基础

Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作(虽然set可以用列表代替)

小例子

1.如果我要在许多列表中找出相同的项,那么用集合是最好不过的了,用集合只用一行就可以解决

复制代码 代码如下:

x & y & z # 交集

2.去重

复制代码 代码如下:

>>> lst = [1,2,3,4,1]
>>> print list(set(lst))
[1, 2, 3, 4]

用法

注意set因为没有位置的概念所以list方法切片什么的都没有用,需要的时候再转化为list

内建函数创建set

复制代码 代码如下:

set([1, 2, 3, 4])

基本操作

复制代码 代码如下:

t.add('x')            # 添加一项
s.update([10,37,42])  # 在s中添加多项

t.remove('H') # 删除一项

len(s)  # set 的长度

x in s # 测试 x 是否是 s 的成员 

x not in s   # 测试 x 是否不是 s 的成员 

s.issubset(t) 
s <= t  # 测试是否 s 中的每一个元素都在 t 中 

s.issuperset(t) 
s >= t  # 测试是否 t 中的每一个元素都在 s 中 

s.union(t) 
s | t  # 返回一个新的 set 包含 s 和 t 中的每一个元素 

s.intersection(t) 
s & t  # 返回一个新的 set 包含 s 和 t 中的公共元素 

s.difference(t) 
s - t  # 返回一个新的 set 包含 s 中有但是 t 中没有的元素 

s.symmetric_difference(t) 
s ^ t  # 返回一个新的 set 包含 s 和 t 中不重复的元素 

s.copy()  # 返回 set “s”的一个浅复制 

相关文章

python交易记录链的实现过程详解

python交易记录链的实现过程详解

接着上篇的内容,这里实现一个交易记录链,废话不多说,先看图: 跟之前的逻辑类似,但也有少许不同,这里多了一个payloadhash,以及对payloadhash和prehash的has...

Python的几种主动结束程序方式

Python的几种主动结束程序方式

对于如何结束一个Python程序或者用Python操作去结束一个进程等,Python本身给出了好几种方法,而这些方式也存在着一些区别,对相关的几种方法看了并实践了下,同时也记录下。 参考...

Python实现线性判别分析(LDA)的MATLAB方式

Python实现线性判别分析(LDA)的MATLAB方式

线性判别分析(linear discriminant analysis),LDA。也称为Fisher线性判别(FLD)是模式识别的经典算法。 (1)中心思想:将高维的样本投影到最佳鉴别矢...

Python数据类型详解(三)元祖:tuple

一.基本数据类型   整数:int   字符串:str(注:\t等于一个tab键)   布尔值: bool   列表:list   列表用[]   元祖:tuple   元祖用()...

对python中list的拷贝与numpy的array的拷贝详解

对python中list的拷贝与numpy的array的拷贝详解

1.python中列表list的拷贝,会有什么需要注意的呢? python变量名相当于标签名。 list2=list1 ,直接赋值,实质上指向的是同一个内存值。任意一个变量list1...