您的位置:首页 > 理论基础 > 数据结构算法

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

2015-04-28 11:01 721 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: