首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础知识——内置数据结构(集合)

python基础知识——内置数据结构(集合)

作者头像
felixzhao
发布2019-02-13 15:07:47
3060
发布2019-02-13 15:07:47
举报
文章被收录于专栏:null的专栏null的专栏

python中的set是指一系列无序元素的集合,其中的元素都是相异的,常见的操作包括集合的并集,交集和补集等操作。

1、set的创建

格式

set_name = {value1, value2, ...}

创建空的集合

set_name = set()

注意:在创建空的集合的时候不能使用

set_name = {}

这样创建出来的是字典。

例如

animals = {'cat', 'dog'}
animals_null = set()
print animals, animals_null

另外,可以将list转换成set类型

格式

set_name = set(list_name)

例如

animals = ['cat', 'dog']
animals_Set = set(animals)
print animals_Set

2、去除重复元素

set类型的数据结构中的元素是无序不重复的,可以利用这点,去除数据结构中相同的元素。

例如

animals = {'cat', 'dog', 'dog','pig'}
print animals

输出结果

set(['cat', 'dog', 'pig'])

3、并、交、补操作

对于set数据结构来说,最重要的就是并(|)、交(&)、补(-)的操作。

#coding:UTF-8
sA = {1, 2, 2, 2, 4, 5, 5}
sB = {4, 5, 6, 7}
#交集
print sA & sB#set([4, 5])
#并集
print sA | sB#set([1, 2, 4, 5, 6, 7])
#补集
print sA - sB#set([1, 2])

并交补的另类写法,并(union)、交(intersection)、补(difference)。

#coding:UTF-8
sA = {1, 2, 2, 2, 4, 5, 5}
sB = {4, 5, 6, 7}
#交集
print sA & sB#set([4, 5])
#并集
print sA | sB#set([1, 2, 4, 5, 6, 7])
#补集
print sA - sB#set([1, 2])

#并交补的另类写法
print sA.intersection(sB)#set([4, 5])
print sA.union(sB)#set([1, 2, 4, 5, 6, 7])
print sA.difference(sB)#set([1, 2])

另外在集合的操作中,判断集合的包含于子集。包含(>=或者issuperset),子集(<=或者issubset)。

#coding:UTF-8
sA = {1, 2, 2, 2, 4, 5, 5}
sB = {4, 5}
#判断sA是否包含sB
print sA.issuperset(sB)
print sA >= sB
#判断sB是否是sA的子集
print sB.issubset(sA)
print sB <= sA

4、其他的一些方法

增加单个元素(add),增加一组元素(update),判断指定的元素是否存在(in或者not in),删除指定的元素(remove),如果集合存在指定元素,则删除该元素(discard),集合的清空(clear)

#coding:UTF-8
sA = {1, 2, 2, 2, 4, 5, 5}
#添加单个元素
sA.add(6)#set([1, 2, 4, 5, 6])
print sA
#添加多个元素
sA.update([7,8,9,9,9])#set([1, 2, 4, 5, 6, 7, 8, 9])
print sA
#判断指定元素是否存在
print 5 in sA#True
print 10 not in sA#True
#删除指定元素
sA.remove(6)#set([1, 2, 4, 5, 7, 8, 9])
print sA
#如果集合存在指定元素,则删除该元素
sA.discard(9)#set([1, 2, 4, 5, 7, 8])
print sA
#集合的清空
sA.clear()#set([])
print sA
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年04月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档