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语言的特殊(奇葩)写法. 我一直在想一个人参与了两种语言的设计,但是最后两种语言的语法差异这么大.这是自己否定自己么,为什么不与之前统一一下 ...
随机推荐
- CentOS添加使用
在本机安装虚拟机,虚拟机安装CentSO.也可以装双系统,双系统问题更多 环境:win7 64 位 1.查看电脑是否可虚拟化(在百度查) 2.查看电脑是否打开虚拟机设置,如果没有,百度如何开启 打开虚 ...
- 【7.10校内test】T2不等数列
[题目链接luogu] 此题在luogu上模数是2015,考试题的模数是2012. 然后这道题听说好多人是打表找规律的(就像7.9T2一样)(手动滑稽_gc) 另外手动 sy,每次测试都无意之间bib ...
- mknod创建设备(加载新的设备驱动时候,通常会用到此命令)
mknod - make block or character special filesmknod [OPTION]... NAME TYPE [MAJOR MINOR] option 有用的就是- ...
- liunx 环境下安装 Eclipse C++
第一步:首先安装JDK 进入JDK官网:https://www.oracle.com/technetwork/java/javase/downloads/index.html 下载对应的jdk 注意 ...
- vue-awesome-swiper轮播插件
1. github上搜索vue-awesome-swiper 2. readme中有安装方法,建议在插件名后@版本号,使用稳定的老版本 npm install vue-awesome-swiper@x ...
- 获取url中参数值
function GetRequest() {var url = window.location.href; //获取url中"?"符后的字串var theRequest = ne ...
- 一、bif
缩进是python的灵魂,缩进可以使python的代码整洁,有层次. python是脚本语言,就是为了简单方便以辅助科学运算,因此python有许多bif,build in function 全部都是 ...
- c# task笔记
class Program { //创建Task任务的三种方式(无返回值) static void Main(string[] args) { //方法一 Task task1 = new Task( ...
- C++ 6小时刷完面向对象
**本篇博文参考视频见我上一篇博文的第一行**### 类和对象的声明- 类的声明```class People{ int a; void fun(){ cout<<"fun&qu ...
- 2018牛客网暑期ACM多校训练营(第十场)J Rikka with Nickname(二分,字符串)
链接:https://ac.nowcoder.com/acm/contest/148/J?&headNav=acm 来源:牛客网 Rikka with Nickname 时间限制:C/C++ ...