set是一个无序且不重复的元素集合,相当于字典的键,不重复,不可变

一、set变量初始化

A = set() #注意在创建空集合的时候只能使用s=set(),因为s={}创建的是空字典
B = {"one", "two", "three", "four"}
C = set('boy')
D = set(['y', 'b', 'o'])
E = set({"k1": 'v1', 'k2': 'v2'})
F = {'k1', 'k2', 'k2'}
G = {('k1', 'k2', 'k2')}
print (A, type(A))
print (B, type(B))
print (C, type(C))
print (D, type(D))
print (E, type(E))
print (F, type(F))
print (G, type(G))运行结果:
(set([]), <type 'set'>)
(set(['four', 'three', 'two', 'one']), <type 'set'>)
(set(['y', 'b', 'o']), <type 'set'>)
(set(['y', 'b', 'o']), <type 'set'>)
(set(['k2', 'k1']), <type 'set'>)
(set(['k2', 'k1']), <type 'set'>)
(set([('k1', 'k2', 'k2')]), <type 'set'>)

二、集合关系

print E & F  # E 和 F的交集
print A | B  # A 和 B的并集
print B - A  # 求差集(项在B中,但不在A中)
print D ^ E  # 对称差集(项在D或E中,但不会同时出现在二者中)
运行结果:
set(['k2', 'k1'])
set(['four', 'one', 'three', 'two'])
set(['four', 'one', 'three', 'two'])
set(['y', 'k2', 'k1', 'b', 'o'])
x = set(['i', 'e', 'm', 'd', 't'])
y = set(["i", "d", "e", "a"])
print x.union(y)                # 并集
set(['e', 'd', 'i', 'h', 'j', 'm', 't'])
print x.intersection(y)         # 交集
set(['i', 'e', 't'])
print x.difference(y)           # 差集
set(['h', 'j'])
print x.symmetric_difference(y) # 对称差
运行结果:
set(['a', 'e', 'd', 'i', 'm', 't'])
set(['i', 'e', 'd'])
set(['m', 't'])
set(['a', 'm', 't'])
se = set(["AA", "BB", "CC", "DD"])
ke = set(["AA", "BB"])
print se.difference(ke)   # A中存在 ,B中不存在 ,生成一个新序列
se.difference_update(ke)  #  A中存在 ,B中不存在 ,更改原序列
print se
print se.symmetric_difference(ke)  # 对称交集,生成新序列
se.symmetric_difference_update(ke)  #对称交集,更新原序列
print se
运行结果:
set(['CC', 'DD'])
set(['CC', 'DD'])
set(['AA', 'CC', 'DD', 'BB'])
set(['AA', 'BB', 'CC', 'DD'])

三、包含关系

se = set(["AA", "BB", "CC", "DD"])
ke = set(["AA", "BB"])
print se.isdisjoint(ke) # 判断两个集合是不是不相交
print se.issubset(ke) # 判断集合是不是被其他集合包含,等同于a<=b
print se.issuperset(ke) # 判断集合是不是包含其他集合,等同于a>=b
运行结果:
False
False
True

四、添加元素

se = set(["AA", "BB", "CC"])
ke = set({"11", "22"})
print se
se.add("dd")   #  添加一个元素
print se
se.update(["DD", "EE"])  # 添加多个元素
print se
se.update(ke)  # 添加另一个集合的元素
print seset(['AA', 'CC', 'BB'])
set(['AA', 'CC', 'dd', 'BB'])
set(['AA', 'BB', 'CC', 'dd', 'EE', 'DD'])
set(['AA', '11', '22', 'BB', 'CC', 'dd', 'EE', 'DD'])

五、删除元素

se = set(["AA", "BB", "CC", "DD"])
se.discard("AA")
print se
se.remove("BB")  #  元素不存在时会抛出异常
print se
se.pop() # 弹出一个值,随机的,不能指定
print se
运行结果:
set(['CC', 'DD', 'BB'])
set(['CC', 'DD'])
set(['DD'])

六、去除重复值

a = [11, 22, 33, 44, 55, 11, 33]
b = set(a)
print list(b)
运行结果:
[33, 11, 44, 22, 55]

七、常用方法

class set(MutableSet[_T], Generic[_T]):def add(self, element: _T)   # 添加一个元素def clear(self) # 清空集合def copy(self)def difference(self, *s: Iterable[Any])  # A中存在 B中不存在,返回一个新集合,可赋值给其他变量def difference_update(self, *s: Iterable[Any]) # A中存在 B中不存在,直接更改集合Adef discard(self, element: _T) #  删除单个元素def intersection(self, *s: Iterable[Any])def intersection_update(self, *s: Iterable[Any])def isdisjoint(self, s: Iterable[Any]) # 判断两个集合是不是不相交def issubset(self, s: Iterable[Any]) # 判断集合是不是被其他集合包含,等同于a<=bdef issuperset(self, s: Iterable[Any]) # 判断集合是不是包含其他集合,等同于a>=bdef pop(self) # 弹出一个元素,随机的,不可指定def remove(self, element: _T) # 移除单个元素,如果该元素不存在在该集合,则会报错def symmetric_difference(self, s: Iterable[_T])def symmetric_difference_update(self, s: Iterable[_T])def union(self, *s: Iterable[_T])def update(self, *s: Iterable[_T]) # 更新单个元素,或其他集合

转载于:https://blog.51cto.com/20120809/1975068

python 基本数据类型之set相关推荐

  1. Python的零基础超详细讲解(第四天)-Python的数据类型

    Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...

  2. python的数据类型和变量

    python的数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种 ...

  3. python核心数据类型_Python核心数据类型-列表

    Python核心数据类型-列表 关于列表的重要属性 列表是任意对象的有序集合,列表中可以包含任何种类的对象,数字 字符串 或者是其他列表 列表可以通过偏移来读取其中的元素,也可以通过分片读取列表中的某 ...

  4. python判断数据类型type_Python 判断数据类型有type和isinstance

    Python 判断数据类型有type和isinstance 基本区别在于: type():不会认为子类是父类 isinstance():会认为子类是父类类型 执行结果如下: 用isinstance判断 ...

  5. Python基础数据类型之set集合

    Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...

  6. Python基础数据类型之字符串(二)

    Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...

  7. Python基础数据类型之字符串(一)

    Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...

  8. 好好学python·基本数据类型

    好好学Python的第一天 基本用法 注释 输出 变量 命名规范 变量的定义方式 python的数据类型 数据类型分类 字符串类型 数字类型 List列表类型 tuple 元组类型的定义 Dict字典 ...

  9. python元组类型_什么是python元组数据类型

    什么是python元组数据类型 发布时间:2020-08-25 11:46:29 来源:亿速云 阅读:68 这篇文章运用简单易懂的例子给大家介绍什么是python元组数据类型,代码非常详细,感兴趣的小 ...

  10. python核心数据类型_Python核心数据类型—元组

    Python核心数据类型-元组 Python元组与列表类似,但是元组属于不可变类型 创建元组 a = () #创建空元组 a = (1, 2, 3) #创建一个元组 a = [1, 2, 3] b = ...

最新文章

  1. python get请求 由于目标机器_使用python和selenium进行Web抓取:由于目标机器主动拒绝i...
  2. paip.odbc DSN的存储与读取
  3. R计算获取决策曲线数据(Decision Curve Analysis,DCA)并使用python进行可视化
  4. linux(2)- 共享内存的实现
  5. css3属性box-sizing:border-box 用法解析 击败边框:带border的百分比布局
  6. java类是如何加载的?不知道classLoader和双亲委派,不是一个合格的程序员
  7. 我的Objective-C系列文章
  8. 《直播疑难杂症排查系列》之一 :播放失败
  9. delphi 关闭时缩小到托盘_delphi 实现最小化系统托盘
  10. 文件流、目录流、文件描述符总结
  11. studying and learning
  12. HCIE-Security Day13:防火墙双机热备实验(一)防火墙直路部署,上下行连接交换机
  13. js 右键菜单_Windows下的多场景「快捷菜单」工具箱
  14. 【欧洲AI复兴】马克龙:法国AI要赶美超中!
  15. 什么是PXE及PXE启动
  16. 老司机必备-安卓+PC磁链下载播放工具
  17. 几个可以免费下载视频素材的网站[国外],希望大家喜欢[可以的话给个关注哟]
  18. access里面的表达式运用_表达式的示例
  19. Linux vim编辑文件查找指定的字符串
  20. 很容易爱上jQuery

热门文章

  1. 分布式事务及分布式系统一致性解决方案
  2. JavaScript之Ajax-1 Ajax(Ajax原理、Ajax对象属性和方法)
  3. 不使用库函数将字符串转换为数字
  4. 解决uploadify在Firefox下丢失session的问题
  5. [java]关于访问权限
  6. 【Val】对于博客使用些许意见
  7. 两种实现大图内容平移效果的方法
  8. 组合算法 C++高效实现 (二进制辅助法)
  9. 在Linux下安装LaTeX+CJK+中文字体的方法 [转]
  10. [翻译]HTTP: Response Code