集合的定义

  由一个或多个确定的元素所构成的整体

可变集合

 s=set('hello')
print(s) # {'e', 'l', 'o', 'h'} s=set(['alex','alex','Lucy'])
print(s) # {'alex', 'Lucy'} s = {1,2,3,4,5,6,7}
print(s)

不可变集合

 s = {1,2,3,4,5,6,7}
print(s) # {1, 2, 3, 4, 5, 6, 7}
# 改为不可变集合
fs = frozenset(s)
print(fs) # frozenset({1, 2, 3, 4, 5, 6, 7})

集合的特性

  1、确定性(元素必须可hash)

   2、互异性(去重)

   3、无序性(集合中的元素没有先后之分,如集合{3,4,5}和{3,5,4}算作同一个集合)

    注:集合存在的意义:去重和关系运算

去重

 p_li = [1,2,3,4,3,5]
# 去重
p_s = set(p_li)
print(p_s) # {1, 2, 3, 4, 5}

集合的关系运算

 p_s1 = {'张三','王五','李四'}
p_s2 = {'李四','王五','赵六'}
# 交集
print(p_s1.intersection(p_s2)) # {'李四', '王五'}
print(p_s1&p_s2) # {'李四', '王五'}
# 并集
print(p_s1.union(p_s2)) # {'张三', '李四', '王五', '赵六'}
print(p_s1|p_s2) # {'张三', '李四', '王五', '赵六'}
# 差集【A-交集】
print(p_s1.difference(p_s2)) # {'张三'}
print(p_s1-p_s2) # {'张三'}
# 对称差集【并集-交集】
print(p_s1.symmetric_difference(p_s2)) # {'赵六', '张三'}
print(p_s1^p_s2) # {'赵六', '张三'}
# A更新为交集
# p_s1.intersection_update(p_s2)
# A更新为差集
# p_s1.difference_update(p_s2)
# A更新为对称差集
# p_s1.symmetric_difference_update()
# print(p_s1)

集合的内置函数

常见

 s = {1,2,3,4,5,6,7}
print(s) # {1, 2, 3, 4, 5, 6, 7}
# 添加
s.add('a')
print(s) # {1, 2, 3, 4, 5, 6, 7, 'a'}
# 清空
s.clear()
print(s) # set() s = {1,2,3,4,5,6,7}
# 随机删除
s.pop()
print(s)
s = {1,2,3,4,5,6,7}
# 指定删除,若无报错
s.remove(5)
print(s)
s = {1,2,3,4,5,6,7}
# 指定删除,若无不报错
s.discard(8)
print(s)

补充

 s = {1,2}
print(s) # {1, 2}
# 单个元素的增加
s.add(3)
print(s) # {1, 2, 3}
# 多个元素的增加
s.update([3,4],[7,8])
print(s) # {1, 2, 3, 4, 7, 8}
s.update('hello')
print(s) # {1, 2, 3, 4, 'o', 7, 8, 'e', 'l', 'h'}

其他

 p_s1 = {'张三','王五','李四'}
p_s2 = {'李四','王五','赵六'}
# 判断两个集合是不是相交
print(p_s1.isdisjoint(p_s2))
# 判断集合是不是包含其他集合
print(p_s1.issuperset(p_s2))
# 判断集合是不是被其他集合包含
print(p_s2.issubset(p_s2))

Python开发——数据类型【集合】的更多相关文章

  1. python基础数据类型--集合(set)

    python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...

  2. Python开发——数据类型【字符串】

    字符串定义 字符串是一个有序的字符的集合,用于存储和表示基本的文本信息 在Python中加了引号的字符,都被认为是字符串! 单引号.双引号.多引号之间的区别? 答案:单双引号没有区别 多引号的作用? ...

  3. Python开发——数据类型【字典】

    字典的定义 # Python语言中唯一的类型映射 # 键与值之间用“:”分开 # 项与项之间用“,”分开 person = {"name":"yuan",&qu ...

  4. Python之路(第五篇) Python基本数据类型集合、格式化、函数

    一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...

  5. Python基本数据类型集合、格式化、函数

    一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...

  6. python基本数据类型集合set操作

    转:https://www.cnblogs.com/tina-python/p/5468495.html 一.集合的定义 set集合,是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值 ...

  7. Python开发——数据类型【列表】

    列表的定义 中括号[]内以逗号分隔开,按照索引,存放各种数据类型,每个位置代表一个元素 list_t = ['张三','Lucy',123] print(list_t) # ['张三', 'Lucy' ...

  8. Python开发——4.集合和字符串拼接

    一.集合(set) 1.集合的特性: 不同元素组成.元素是无序排列的可hash值 2.集合转为列表 s1 = {11,"hechouzi",(11,22,33)} names = ...

  9. python基本数据类型——集合

    集合 无序可变序列,集合中元素不允许重复,即每个元素都是唯一的 集合中的元素按照升序排列 # 创建集合 >>aset = set([0,2,4,5,7,2,3,5,9,0]) >&g ...

随机推荐

  1. 如何在idea中引入一个新maven项目

    如何在idea中引入一个新的maven项目,请参见如下操作:      

  2. Red-Gate.NET.Reflector.v8.0.1.308(内含注册机Keygen与注册图解)

    Red-Gate.NET.Reflector.v8.0.1.308(内含注册机Keygen与注册图解)   反编译神器 内含软件安装包.注册机及插件集合. 这里说下注册方法,注意不要在联网的情况下注册 ...

  3. [转]Python依赖打包发布详细

    Python依赖打包发布详细   http://www.cnblogs.com/mywolrd/p/4756005.html 将Python脚本打包成可执行文件   Python是一个脚本语言,被解释 ...

  4. 解决ubuntu16.04桌面左侧栏和顶部栏消失的问题

    重要事情说三遍! 不要轻易重装系统! 不要轻易重装系统! 不要轻易重装系统! 问题所在:误删了unity桌面. 解决方法: $sudo apt-get install unity

  5. C#程序终止问题CLR20R3解决方法

    去年在公司局域网部署了一个C#编写的自动更新的工具软件,最近有同事反映部分Win7系统电脑安装不了,程序自动安装不了,免安装版又运行不了. 没办法,先解决自动安装不了的问题,最后通过关闭防火墙得以解决 ...

  6. 小程序客服下发消息禁止后 session from 还有用吗?

    文章概要 1. 小程序下发政策调整分析 2. session from 数据还传到底三方了没?  1. 小程序下发政策调整分析 小程序客服功能下发策略调整                       ...

  7. alertjs Documentation

    原文地址:https://github.com/PaulNieuwelaar/alertjs/wiki/Documentation#alertshow For version 3.0 document ...

  8. ubuntu 16.04 安装中文语言包

    安装中文语言包 sudo apt-get install  language-pack-zh-han* 安装gnome包 sudo apt-get install   language-pack-gn ...

  9. C# 对Excel操作与分析

    今天帮现在饿公司写个工具,要动态读excel上的ip地址与端口号,来更改IE的代理地址,由于好久没写Excel的操作了,只能查阅以前的项目,总结一下: 首先我们要引用我们的com接口的excelMic ...

  10. 总结http状态码和200,304状态码

    状态码  响应类别  中文意思 1XX  信息性状态码(Informational) 服务器正在处理请求 2XX 成功状态码(Success) 请求已正常处理完毕 3XX 重定向状态码(Redirec ...