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

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值