Python第五章-内置数据结构05-集合
Python内置数据结构
五、集合(set)
python 还提供了另外一种数据类型:set。
set用于包含一组无序的不重复对象。所以set中的元素有点像dict的key。这是set与 list的最大区别
set基本应用有元素测试、去除list、tuple中的重复元素。
set也支持一些数学操作,像:并集(union)、交集(intersection)、差集(difference)、对称差集(symmetric difference)。
set集合创建方式一般有 2 种:字面量方式和把list、tuple、str等转换成set
5.1 set集合的创建
5.1.1 字面量方式创建set集合
字面量方式创建set集合和字面量dict有点像,都是使用的{}来包裹, 只不过set中不是键值对而已。
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)
set中不能存储重复元素

5.1.2 把list中的元素存入到set
使用set构造函数支持把list中的元素直接存入到新创建的set中。
nums1 = [10, 20, 30, 20, 10, 100, 200, 100]
nums2 = set(nums1)
print(nums2)

重复元素也去除成功了!
5.1.3 把字符串中的每个字符作为一个元素存入到set
s = "hello world, I love you"
cs = set(s)
print(cs)

你会发现重复字符已经去除完毕了。
注意:
创建空的set不能直接使用字面量的形式{},这样创建的是空的字典。只能使用set构造函数。
s = {}
print(type(s) is dict)
s = set()
print(type(s) is dict)

5.2 set常用操作
5.2.1支持in和not in
nums1 = {10, 20, 30, 20, 10, 100, 200, 100}
print(10 in nums1) # True
print(20 not in nums1) # False
5.2.2 数学操作
set也支持一些数学操作,像:并集(union)、交集(intersection)、差集(difference)、对称差集(symmetric difference)。
a = set("abcde")
b = set("defghi")
print("a:" + str(a))
print("b:" + str(b))
print("a - b 差集: " + str(a - b)) # 差集 a 中有,但是 b 中没有
print("a | b 并集: " + str(a | b)) # 并集 a 和 b 的元素全部都有 当然不会重复
print("a & b 交集: " + str(a & b)) # 交集 a 和 b 共同有的元素
print("a ^ b 对称差集: " + str(a ^ b)) # 对称差集 a 有或者 b 有,但是不是他们都有

5.2.3 set推导
同list推导一样,set也支持set推导
a = {x for x in 'abracadabra' if x not in 'abc'}
print(a)

5.2.4 在集合中添加新项
s = set("hello")
s.add("z") # 添加一项
print(s)
s.update(["x", "y"]) # 添加多项
s.update("mn") # 添加多项
print(s)

Python第五章-内置数据结构05-集合的更多相关文章
- Python第五章-内置数据结构01-字符串
Python 内置的数据结构 到目前为止,我们如果想保存一些数据,只能通过变量.但是如果遇到较多的数据要保存,这个时候时候用变量就变的不太现实. 我们需要能够保存大量数据的类似变量的东东,这种 ...
- Python第五章-内置数据结构02-列表
Python 内置的数据结构 二.列表(list) 想一想: 前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储咱们班所有同学的名字呢? 定义100个变量,每个变量存放一个学生的姓名可行吗?有 ...
- Python第五章-内置数据结构04-字典
Python 内置的数据结构 四.字典(dict) 字典也是 python 提供给我们的又一个非常重要且有用的数据结构. 字典在别的语言中有时叫关联数组.关联内存.Map等. 字典中存储的是一系列的k ...
- Python第五章-内置数据结构03-元组
Python 内置的数据结构 三.元组(tuple) python 作为一个发展中的语言,也提供了其他的一些数据类型. tuple也是 python 中一个标准的序列类型. 他的一些操作和str和li ...
- Python的4个内置数据结构
Python提供了4个内置数据结构(内置指可以直接使用,无需先导入),可以保存任何对象集合,分别是列表.元组.字典和集合. 一.列表有序的可变对象集合. 1.列表的创建例子 list1 = []lis ...
- python的四种内置数据结构
对于每种编程语言一般都会规定一些容器来保存某些数据,就像java的集合和数组一样python也同样有这样的结构 而对于python他有四个这样的内置容器来存储数据,他们都是python语言的一部分可以 ...
- [PY3]——内置数据结构(6)——集合及其常用操作
集合及其常用操作Xmind图 集合的定义 # set( ) # {0,1,2} //注意不能用空的大括号来定义集合 # set(可迭代对象) In [1]: s=set();type ...
- Python的内置数据结构
Python内置数据结构一共有6类: 数字 字符串 列表 元组 字典 文件 一.数字 数字类型就没什么好说的了,大家自行理解 二.字符串 1.字符串的特性(重要): 序列化特性:字符串具有一个很重要的 ...
- python面试总结4(算法与内置数据结构)
算法与内置数据结构 常用算法和数据结构 sorted dict/list/set/tuple 分析时间/空间复杂度 实现常见数据结构和算法 数据结构/算法 语言内置 内置库 线性结构 list(列表) ...
随机推荐
- NIPS 2016:普及机器学习
2016:普及机器学习" title="NIPS 2016:普及机器学习"> 左起:微软研究员Robert Schapire,John Langford,Al ...
- C++走向远洋——30(六周,项目一1.0)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:fenshu.cpp * 作者:常轩 * 微信公众号:World ...
- 达拉草201771010105《面向对象程序设计(java)》第七周学习总结
达拉草201771010105<面向对象程序设计(java)>第七周学习总结 实验七继承附加实验 实验时间 2018-10-11 1.实验目的与要求 (1)进一步理解4个成员访问权限修饰符 ...
- java反序列化-ysoserial-调试分析总结篇(6)
前言: 这篇记录CommonsCollections6的调试,外层也是新的类,换成了hashset,即从hashset触发其readObject(),yso给的调用链如下图所示 利用链分析: 首先在h ...
- 优雅的创建一个JavaScript库
这篇文章的目的是通过演示一个简单的例子来介绍在JS中实例化和定义一个库的正确方法,以优化他人编写或维护自己的JS库. 在我们深入之前,我做了两点假设: 你知道简单的JavaScript或C语言. 你不 ...
- react-intl 实现 React 国际化多语言
效果预览 React Intl 国际化步骤 创建国际化资源文件 根据语言获取国际化资源 引入 react-intl 的 local data 创建 LocaleProvider 国际化上下文组件 创建 ...
- 如何使用API提交转码任务?
摘要: 当常规的转码工作流无法满足用户的场景时,需用户自己判断业务逻辑,并使用API提交转码任务.例如:并不是所有的视频都需要转码,不同视频需要设置不同的转码配置.本文将介绍API提交转码任务的方法. ...
- 使用HBuilder开发移动APP:ajax调用接口数据
既然要做APP,与接口交互式少不了的,除非只是想做一个纯静态的APP.所以html5+的环境准备好后,我最先开始研究的就是如何与接口交互. 使用HBuilder新建示例教程后,里面会有一个ajax(网 ...
- 课题:html5图像羽化(不规则区域羽化,feather,html5羽化)
下午搜索了一堆相关文章,没有找到符合要求的. 对一张图片应用不规则区域的羽化,该怎么做呢? 首先去查了下 羽化的原理,然而没有什么用, 然后就开始从表现层去研究怎么模拟? idea 1: blur滤镜 ...
- I - A计划 HDU - 2102
A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...