一、set特性:

set是一个无序不重复的元素集合。

集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小),用for循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片( slice)操作,也没有键(keys)可用来获取集合中元素的值。

set和dict一样,只是没有value,相当于dict的key集合, 由于dict中的key是不重复的,且是不可变对象,因此set也有如下特性

1.不重复

2.元素为不可变对象

二、 创建set集合

>>> set('boy')
set(['y', 'b', 'o'])
>>>

集合的添加

添加:add()方法和update()方法,add()作为一个元素添加,update()单个元素添加。

>>> n = set('boy')
>>> n
set(['y', 'b', 'o'])

>>> n.add('python')
>>> print n
set(['y', 'python', 'b', 'o'])

>>> n.update('ok')
>>> n
set(['y', 'python', 'k', 'b', 'o'])

例子2:

>>> se = {11,22,33}
>>> be = {22,44,55}

>>> se.update(be)
>>> se
set([33, 22, 55, 11, 44])

>>> se.update([66,77])
>>> print (se)
set([33, 66, 22, 55, 11, 44, 77])

>>> se.update('88')
>>> se
set([33, 66, 22, 55, '8', 11, 44, 77])

集合的删除

discard(),remove(),pop()

se = {11, 22, 33}

se.discard(11)

se.discard(44) # 移除不存的元素不会报错

print(se) se = {11, 22, 33}

se.remove(11) se.remove(44) # 移除不存的元素会报错

print(se)

se = {11, 22, 33} # 移除末尾元素并把移除的元素赋给新值

temp = se.pop() print(temp) # 33

print(se) # {11, 22}

取交集

se = {11, 22, 33}

be = {22, 55}

temp1 = se.intersection(be) #取交集,赋给新值

print(temp1) # 22

print(se) # {11, 22, 33}

temp2 = se.intersection_update(be) #取交集并更新自己

print(temp2) # None

print(se) # 22

或者

交集

>>> se&be
set([22])

并集

>>> se|be
set([33, 11, 22, 55])

差集

>>> se-be
set([33, 11])

集合的转换

>>> se = set(range(4))
>>> li = list(se)
>>> tu = tuple(se)
>>> st = str(se)

>>> print (li,type(li))
([0, 1, 2, 3], <type 'list'>)
>>> print (tu,type(tu))
((0, 1, 2, 3), <type 'tuple'>)
>>> print (st,type(st))
('set([0, 1, 2, 3])', <type 'str'>)

判断

se = {11, 22, 33}

be = {22}

print(se.isdisjoint(be)) #False,判断是否不存在交集(有交集False,无交集True)

print(se.issubset(be)) #False,判断se是否是be的子集合

print(se.issuperset(be)) #True,判断se是否是be的父集合

python set 集合复习--点滴的更多相关文章

  1. 5月11日 ArrayList集合复习、特殊集合、枚举类型

    一.ArrayList集合复习 //定义 ArrayList al = new ArrayList(); //添加元素 al.Add(); //插入元素 al.Insert(,); //查看个数 in ...

  2. Python 3 集合基础和概念!

    Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...

  3. Python的集合

    1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...

  4. Python 操作集合

    Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...

  5. Python中集合set()的使用及处理

    在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set中会被自 ...

  6. Python:集合操作总结

    集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...

  7. python 的集合 set()操作

      Python 的集合 set(),是一个无序不重复元素集,可以用于关系测试和消除重复元素.     有以下运算:   1.创建一个set ()集合:   2.add:增加集合元素   3.clea ...

  8. python set集合(16)

    在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set. ...

  9. python frozenset集合(17)

    在前一篇文章中我们对 python set集合 做了详细的讲解,而本文讲解的 frozenset集合 其实和set集合类似!区别在于frozenset集合不能修改/添加/删除,其他功能和set集合一样 ...

随机推荐

  1. tomcat启动后8005端口未被占用

    8005端口是tomcat本身的端口,如果这个端口在启动时未被tomcat占用的话,就无法使用它自带的shutdown.sh脚本关闭tomcat 接下来我以tomcat-9.0.12为例说明 下载to ...

  2. Hnoi-2017 滚粗记

    一路走来,OI生涯中最重要的一场比赛在10个小时的比赛后,在不止10个小时的焦急等待中,也就这么结束了呢... Day 0: 当时其实内心里面还是比较虚的,还记得在回家的路上和$DYC$大佬畅想我们省 ...

  3. 力扣(LeetCode)482. 密钥格式化

    给定一个密钥字符串S,只包含字母,数字以及 '-'(破折号).N 个 '-' 将字符串分成了 N+1 组.给定一个数字 K,重新格式化字符串,除了第一个分组以外,每个分组要包含 K 个字##符,第一个 ...

  4. 安卓constraintLayout中app:srcCompat设置的图片显示不出来

    使用 app:srcCompat 的时候 引入的图片显示不出来的解决方案 首先查看的你的Activity 继承的是那个Activity 如果是继承AppcompatActivity  使用 Image ...

  5. Bean的Scope

    Bean的scope: 1.Singleton(单例): 一个Spring容器只有以这个Bean实例. 2.prototype(多例): 每次调用新建一个Bean的实例. 3.request:一个ht ...

  6. MVC实战之排球计分(五)—— Controller的设计与实现

    控制器 控制器接受用户的输入并调用模型和视图去完成用户的需求.所以当单击Web页面中的超链接和发送HTML表单时, 控制器本身不输出任何东西和做任何处理.它只是接收请求并决定调用哪个模型构件去处理请求 ...

  7. javascript中的词法分析

    词法分析 JavaScript中在调用函数的那一瞬间,会先进行词法分析. 词法分析的过程: 当函数调用的前一瞬间,会先形成一个激活对象:Avtive Object(AO),并会分析以下3个方面: 1: ...

  8. npm 设置和取消代理配置

    设置代理npm config set proxy=http://127.0.0.1:8087npm config set registry=http://registry.npmjs.org12关于h ...

  9. 关于NOIP复赛规模的规定

    近年来NOIP初赛参赛人数不断增长,复赛规模也相应扩大,但仍不能满足选手积极参赛及扩大普及面的需求,现对NOIP复赛规模的规则调整如下. 1.每个省赛区可以设立多于两个的复赛考点,但必须在同一个城市, ...

  10. css美化页面

    css美化页面 如果在我们一行文字中,想让某个文字凸显出来,使用span! 1.字体样式 font-style:字体的风格 italic normal font-weight:字体的粗细 normal ...