Python 集合(set)常用操作方法

简介
Python 中的集合(set)是一个无序的、不包含重复元素的集合类型。集合非常适合于进行成员关系测试、去除重复元素以及数学上的运算,如交集、并集、差集等。

1、创建set
使用 {} 或 set() 创建一个新的集合。

>>> s={1,"python"}
>>> s=set("python") or s=set([1,"python"])

1)集合转成列表

>>> lst=list(s)

2)列表转成集合(可能会删除列表中重复元素)

>>> s=set([1,"python"])

3)不可变集合创建

>>> t=frozenset('python')
>>> t
frozenset({'p', 'y', 't', 'h', 'o', 'n'})

2、集合常用的方法
1)add
add()方法用于添加单个元素。

>>> b=set()
>>> b.add("python")

2)update
update()方法用于更新集合,可以添加多个元素。

>>> seta={"wiki","twitter","google","facebook"}
>>> setb={"python",(1,2,3)}
>>> seta.update(b)
>>> seta
>>> set(["wiki","twitter","google","python","facebook",(1,2,3)])

3)pop
移除末尾元素并把移除的元素并返回该元素。

>>>seta={"wiki","twitter","google","facebook"}
>>>seta.pop()

4)remove
remove() 方法删除指定元素,如果元素不存在会引发 KeyError

>>>seta={"wiki","twitter","google","facebook"}
>>>seta.remove("wiki")#删除的元素不存在会报错

5)discard
discard() 方法也是用来删除集合中的元素,但如果元素不存在,它不会引发错误。

>>>seta={"wiki","twitter","google","facebook"}
>>>seta.discard("wiki")
>>>seta.discard("wiki")#删除的元素不存在,也不会报错

6)clear
清除集合中所有元素

>>>seta={"wiki","twitter","google","facebook"}
>>>seta.clear()
>>>seta
set([])

3、集合间比较方法
1)判断一个元素是不是在集合中

>>> s = set([1,2,3,4])
>>> 1 in s
True
>>> 5 in s
False

2)判断两个集合是否相等

>>> a = set([1,2,3,4,5])
>>> b = set([1,2,3,4,5])
>>> a ==b
True
>>>b.pop()
1
>>>b
set([2,3,4,5])
>>>a==b
False

3)判断一个集合是否是另一个集合的子集

>>> a = set([1,2,3,4])
>>> b = set([1,2,3,4,5])
>>>a < b
True
>>>a.issubset(b)
True

4)判断一个集合是否是另一个集合的超集

>>> a = set([1,2,3,4])
>>> b = set([1,2,3,4,5])
>>>b > a
True
>>>b.issuperset(a)
True

5)取两个集合的并集

>>> a = set([0,1,3,4,6])
>>> b = set([1,2,3,4,5])
>>> a | b
set([0,1,2,3,4,5,6])
>>> a.union(b)
set([0,1,2,3,4,5,6])

6)取两个集合的交集

>>> a = set([0,1,3,4,6])
>>> b = set([1,2,3,4,5])
>>> a & b
set([1,3,4])
>>> a.intersection(b)
set([1,3,4])

7)取一个集合比另一个集合多的元素

>>> a = set([0,1,3,4,6])
>>> b = set([1,2,3,4,5])
>>> a - b
set([0,6])
>>> a.difference(b)
set([0,6])

8)取两个集合中各自独有的元素

a = set([0,1,3,4,6])
b = set([1,2,3,4,5])
a.symmetric_difference(b)
set([0,6,2,5])

了解更多分析及数据抓取可查看:
http://data.yisurvey.com:8989/
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值