Python基础8-集合

集合是一个无序的,不重复的数据组合。

它的特点是:

  1. 唯一性
  2. 无序性
  3. 不支持索引

它的主要作用是:

  1. 去重,把一个列表变成集合,就自动去重了。
  2. 关系测试,测试两组数据之间的交集、差集、并集等。

 

集合的常用操作

创建

>>> a = set('abcde')               #字符串创建
>>> print(a)
{'b', 'd', 'e', 'c', 'a'}
>>> b = set(['ab','cd','ef','gh']) #列表创建
>>> print(b)
{'ab', 'ef', 'gh', 'cd'}

 

 

去重

>>> list1 = [1,2,3,4,5,4,3,2,1]
>>> list1
[1, 2, 3, 4, 5, 4, 3, 2, 1]
>>> set1 = set(list1)
>>> set1
{1, 2, 3, 4, 5}

 

增加

{1, 2, 3, 4, 5}
>>> set1.add(6)
>>> set1
{1, 2, 3, 4, 5, 6}
>>> set1.add([8,7,9])              #不可直接加列表
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> set1.add(a)                    #不可直接加集合
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'
>>> set1.add('a')
>>> set1
{1, 2, 3, 4, 5, 6, 'a'}
>>> set1.update([6,7,8])
>>> set1
{1, 2, 3, 4, 5, 6, 7, 8, 'a'}
>>> set1.update('b')
>>> set1
{1, 2, 3, 4, 5, 6, 7, 8, 'b', 'a'}
>>> set1.update(9)                 #update跟的必须是iterable
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

 

删除

>>> set1.remove(8)
>>> set1
{1, 2, 3, 4, 5, 6, 7, 'b', 'a'}
>>> set1.remove([6,7])
Traceback (most recent call last):     #不能直接跟列表进行删除
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> set2
{1, 2, 3, 4, 5, 6, 7, 'b', 'a'}
>>> set2.pop()                   #弹出集合中任意一个元素
1
>>> set2
{2, 3, 4, 5, 6, 7, 'b', 'a'}
>>> set2.discard(3)              #删除一个元素,该元素不存在也不会报错
>>> set2.discard(3)
>>> set2
{2, 4, 5, 6, 7, 'b', 'a'}

  

复制

>>> set1
{1, 2, 3, 4, 5, 6, 7, 'b', 'a'}
>>> set2 = set1.copy()
>>> set2
{1, 2, 3, 4, 5, 6, 7, 'b', 'a'}

  

集合内置方法

参考链接:http://blog.csdn.net/jasonLee_lijiaqi/article/details/79307119

 

  

  

 

转载于:https://www.cnblogs.com/chenqiyi/p/8465977.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值