Python3学习笔记(八):集合
集合(set)是一种可变的无序的不重复的数据类型
要创建集合,需要将所有项(元素)放在花括号({}
)内,以逗号(,
)分隔。
>>> s = {'p','y','t','h','o','n'}
集合中的元素必须是不可变的数据类型(数字,元组,字符串),不能是可变的数据类型(列表,字典,set集合)
>>> s = {1,2,3}
>>> s = {1,'python',(1,2,3)} # 元素可以为数字,字符串,元组
>>> s = {1,2,[3,4]} # 元素不能为列表
Traceback (most recent call last):
File "<pyshell#208>", line 1, in <module>
s = {1,2,[3,4]}
TypeError: unhashable type: 'list'
>>> s = {1,2,{'a':3,'b':4}} # 元素不能为字典
Traceback (most recent call last):
File "<pyshell#209>", line 1, in <module>
s = {1,2,{'a':3,'b':4}}
TypeError: unhashable type: 'dict'
set()函数
用于把其他序列(字符串,列表,元组,字典)创建为集合
>>> set('python') # 把字符串转变为集合
{'o', 'h', 'p', 'n', 't', 'y'}
>>> set([1,2,3,4,5]) # 把列表转变为集合
{1, 2, 3, 4, 5}
>>> set((1,2,3,4,5)) # 把元组转变为集合
{1, 2, 3, 4, 5}
>>> set({'a':3,'b':4}) # 把字典键值转变为集合
{'b', 'a'}
>>> set() # 创建一个空集合
set()
集合特性
- 无序性:元素之间是无序的,所以不支持索引。
- 互异性:集合中每个元素都是不同的。
- 确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。
# 无序性
>>> s = set('python')
>>> s
{'o', 'h', 'p', 'n', 't', 'y'}
# 不支持索引
>>> s[2]
Traceback (most recent call last):
File "<pyshell#231>", line 1, in <module>
s[2]
TypeError: 'set' object does not support indexing
# 互异性
>>> s = set('Hello')
>>> s
{'e', 'H', 'o', 'l'}
# 确定性
>>> 'l' in s
True
>>> 'p' in s
False
集合运算
集合之间可以进行并集、交集、差集运算
1、并集
一组集合的并集是这些集合的所有元素构成的集合,而不包含其他元素。
使用操作符 |
执行并集操作,同样地,也可使用方法 union() 完成。
>>> a = set('abcd')
>>> b = set('cdef')
>>> a | b
{'d', 'e', 'b', 'c', 'f', 'a'}
>>> a.union(b)
{'d', 'e', 'b', 'c', 'f', 'a'}
2、交集
两个集合 A 和 B 的交集是含有所有既属于 A 又属于 B 的元素,而没有其他元素的集合。
使用 &
操作符执行交集操作,同样地,也可使用方法 intersection() 完成
>>> a = set('abcd')
>>> b = set('cdef')
>>> a & b
{'d', 'c'}
>>> a.intersection(b)
{'d', 'c'}
3、差集
A 与 B 的差集是所有属于 A 且不属于 B 的元素构成的集合
使用操作符 -
执行差集操作,同样地,也可使用方法 difference() 完成。
>>> a = set('abcd')
>>> b = set('cdef')
>>> a - b
{'a', 'b'}
>>> a.difference(b)
{'a', 'b'}
Python3学习笔记(八):集合的更多相关文章
- python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...
- python3学习笔记(6)_iteration
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #类似 其他语言的for循环,但是比for抽象程度更高 # f ...
- go微服务框架kratos学习笔记八 (kratos的依赖注入)
目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding ...
- 软件测试之loadrunner学习笔记-02集合点
loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...
- Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html
Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, ...
- Python3学习笔记 - 准备环境
前言 最近乘着项目不忙想赶一波时髦学习一下Python3.由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境.Python3的中文教程 ...
- Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...
- python3学习笔记(7)_listComprehensions-列表生成式
#python3 学习笔记17/07/11 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #通过列表生成式可以生成格式各样的list,这种list 一 ...
- python3学习笔记(5)_slice
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #切片slice 大大简化 对于指定索引的操作 fruits ...
- Go语言学习笔记八: 数组
Go语言学习笔记八: 数组 数组地球人都知道.所以只说说Go语言的特殊(奇葩)写法. 我一直在想一个人参与了两种语言的设计,但是最后两种语言的语法差异这么大.这是自己否定自己么,为什么不与之前统一一下 ...
随机推荐
- java来接收邮件并解析邮件正文中的表格
这里是实际需求中的一个DEMO 有一部分内容进行了注释和处理,参考需要修改成自己的实际参数.另这个是对于实际一个场景的案例并不是通用解决的工具类. import org.jsoup.Jsoup; im ...
- Luogu P3959 [NOIP2017]宝藏
题目 STO rqy OTZ 首先这种题一看我们就知道可以爆搜. prim一眼假了,但是加个SA也能过. 所以我们来写状压. 记\(f_{i,j,S}\)表示起点到\(j\)距离为\(i\),我们现在 ...
- 云服务器linux重新挂载指定目录(非扩充)
新买的香港云服务器,系统只能在商家的控制台上安装. 系统和硬盘分开的,根目录空间只有10G.需要重新设置相关目录的大小,如:/usr./var./home等. 以下是自己的解决方法小计. 一.初始的分 ...
- Mac中如何查看电脑的IP地址
方法一:使用ifconfig命令 方法二:在charles中查看 Charles 的顶部菜单的 “Help”->”Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图 ...
- Action访问Servlet的API
Action访问Servlet的API_,主要访问如下: 1.>获取request对象 2.>获取请求参数 3.>获取response对象,可用于传递cookie 3.>获取作 ...
- RGB颜色值转换成十六进制
function transferRgbToStr(color) { if (typeof color !== 'string' && !(color instanceof Strin ...
- 爬虫之request相关请求
一.解析json格式数据 (1) # (1)解析json 对象数据 # import requests # 返回的数据进行解析 # response = requests.get('http://ht ...
- issue - 登录前的信息和标识文件
DESCRIPTION (描述) /etc/issue 是一个文本文件,它包含了在登录提示符出现之前显示的信息或者系统标识.如果 getty(1) 支持的话,它可能包括多个 @char 和 \char ...
- Django新建第一个投票应用
1:在Pycharm的命令端口,确保执行文件路径是与mysite同级 $ python3 manage.py startapp polls 系统会自动生成polls应用的目录,其结构如下 polls/ ...
- new、virtual、override
我们先看下面一段程序: public class Father { public void Run0() { Console.WriteLine("Father.Run0"); } ...