python学习之【第七篇】:Python中的集合及其所具有的方法
1.前言
python中的集合set与列表类似,它们最大的区别是集合内不允许出现重复元素,如果在定义时包含重复元素,会自动去重。
集合是无序的,集合中的元素必须是不可变类型。集合可以作为字典的key。
2.集合的定义
集合用一对花括号{}定义
set = {'dog','cat','pig','monkey'}
print(set)
# 输出
{'pig', 'cat', 'monkey', 'dog'}
3.集合的常见操作
- add(x)
往集合的尾部添加元素x
set = {'dog','cat','pig','monkey'}
set.add('china')
set.add('china')
print(set)
# 输出
{'cat', 'pig', 'china', 'monkey', 'dog'}
注意:集合内部不允许出现重复元素,如果有重复元素,集合会自动去重,所以当往集合的尾部添加两个相同元素时,只会保留一个。
- clear()
清空集合内的元素
set = {'dog','cat','pig','monkey'}
set.clear()
print(set)
# 输出
set()
- pop()
随机删除集合内的一个元素,并返回所删除的元素
set = {'dog','cat','pig','monkey'}
print(set.pop())
print(set)
# 输出
'pig'
{'cat', 'monkey', 'dog'}
- remove(x)
删除集合内的元素x,如果元素x不存在会报错
set = {'dog','cat','pig','monkey'}
set.remove('dog')
print(set)
set.remove('dog')
# 输出
{'pig', 'cat', 'monkey'}
报错,因为已经把元素'dog'从集合中删去了,再次删除'dog'时,由于集合中已经不存在该元素了,所以报错
- discard(x)
删除集合内的元素x,如果元素x不存在会返回None,不会报错
set = {'dog','cat','pig','monkey'}
set.discard('dog')
print(set)
print(set.discard('dog'))
# 输出
{'pig', 'cat', 'monkey'}
None
4.集合的关系运算
- 求交集s1 & s2
set1 = {'a','b','c','d'}
set2 = {'h','e','a','l','c'}
print(set1 & set2)
# 输出
{'c', 'a'}
- 求并集s1 | s2
set1 = {'a','b','c','d'}
set2 = {'h','e','a','l','c'}
print(set1 | set2)
# 输出
{'c', 'a', 'h', 'd', 'b', 'l', 'e'}
- 求差集s1 - s2
set1 = {'a','b','c','d'}
set2 = {'h','e','a','l','c'}
print(set1 - set2)
# 输出
{'b', 'd'}
5.利用集合对列表去重
利用集合内不允许出现重复元素这一天然特点,我们可以用来对列表去重
l1 = ['h','e','l','l','o']
#1.将列表转为集合,集合会自动去重
s1 = set(l1)
#2.将去重后的集合再转回列表
l1 = list(s1)
print(l1)
# 输出
['l', 'o', 'h', 'e']
想必细心的你已经看出来了,去重前后的列表中的元素顺序变了,由于集合是无序的,有序的列表转换成集合后变成了无序的,所以元素的顺序发生了变化,这并不是我们想要的,我们只想去掉列表中重复的元素而不想改变列表中元素的顺序,这也就是这种去重方法的缺点。
python学习之【第七篇】:Python中的集合及其所具有的方法的更多相关文章
- [Python学习笔记][第七章Python文件操作]
2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...
- Python学习【第七篇】基本数据类型
基本数据类型 数字 2是一个整数的例子. 长整数 不过是大一些的整数. 3.23和52.3E-4是浮点数的例子,E标记表示10的幂.在这里,52.3E-4表示52.3*10-4. (-5+4j)和(2 ...
- python学习【第七篇】python文件操作
一.文件操作过程 1. 打开文件,得到文件句柄并赋值给一个变量2. 通过句柄对文件进行操作3. 关闭文件 # 1.打开文件,得到文件句柄 f_handle = open('aa.txt', 'r', ...
- python学习笔记-(七)python基础--集合、文件操作&函数
本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...
- Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数
一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...
- Python 学习笔记(七)Python字符串(四)
输入输出 输入函数 raw_input (Python3:input) >>> raw_input("请输入一个字母") #获取输入内容的一个函数 请输入一个字母 ...
- Python 学习笔记(七)Python字符串(一)
字符串 字符串或串(String)是由数字.字母.下划线组成的一串字符,用双引号或单引号包裹的为字符串 1 >>> "hello world" 2 'hello ...
- Python 学习笔记(七)Python字符串(三)
常用字符串方法 split() 分割字符串,指定分隔符对字符串进行分割 join() 将序列中的元素以指定的字符连接生成一个新的字符串 str.strip() 用于移除字符串头尾指定的字符(默认 ...
- Python 学习笔记(七)Python字符串(二)
索引和切片 索引 是从0开始计数:当索引值为负数时,表示从最后一个元素(从右到左)开始计数 切片 用于截取某个范围内的元素,通过:来指定起始区间(左闭右开区间,包含左侧索引值对应的元素,但不包含右测 ...
- HIbernate学习笔记(七) hibernate中的集合映射和继承映射
九. 集合映射 1. Set 2. List a) @OrderBy 注意:List与Set注解是一样的,就是把Set更改为List就可以了 private List< ...
随机推荐
- 【Java】后台将文件上传至远程服务器
问题:由于系统在局域网(能访问外网)内,但外网无法请求局域网内服务器文件和进行处理文件. 解决:建立文件服务器,用于存储文件及外网调用. 客户端(文件上传): package cn.hkwl.lm.u ...
- 使用LitePal建立表关联
关联关系的基础知识 喜欢把所有的代码都写在一个类里的程序员肯定是个新手.没错,任何一个像样的程序都不可能仅仅只有一个类的,同样地,任何一个像样的数据库也不可能仅仅只有一张表.我们都知道,在面向对象 ...
- Cocos Creator 3D 打砖块教程(二) | 子弹发射与摄像机平滑移动
在线体验链接: http://example.creator-star.cn/block3d/ 前面一篇文章,我们讲了[打砖块]游戏中的3D物体的场景布局.材质资源.物理刚体与碰撞组件,接下来本篇文章 ...
- ES三节点重启后报错no known master node
问题 一直在研究ES的监控怎么做,想偷点懒,不去通过API获取然后计算,就想找个现成的插件或者监控软件,只要装个agent就可以,然后就找到了x-pack,插件装好了之后,需要重启ES集群,线上的ES ...
- python常用算法(5)——树,二叉树与AVL树
1,树 树是一种非常重要的非线性数据结构,直观的看,它是数据元素(在树中称为节点)按分支关系组织起来的结构,很像自然界中树那样.树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形 ...
- Linux下聊天和文件传输软件
全平台聊天软件 米聊 官网地址: http://www.miliao.com 潮信 官网地址: https://www.chaoxin.com
- POWERSPLOIT-Recon(信息侦察)脚本渗透实战
Recon(信息侦察)模块 a) 调用invoke-Portscan扫描内网主机的端口. 1)通过IEX下载并调用invoke-portscan. PS C:\Users\Administrator& ...
- ThinkPhp3.1.3执行存储过程返回false
1.Tp在调用存储过程的时候,每次都显示false 返回一大片,下面是我自己的代码.
- opencv实践::对象计数
问题描述 真实案例,农业领域经常需要计算对象个数 或者在其它领域拍照自动计数,可以提供效率,减低成本 解决思路 通过二值分割+形态学处理+距离变换+连通区域计算 #include <opencv ...
- Cassandra官方介绍及安装
Cassandra官方介绍及安装 这个数据库有很高的伸缩性和可用性,你完全不需要向性能妥协.在硬件或者云设施上做修改 官网:Cassandra官网 一.简介 cassandra这个数据库有很高的伸缩性 ...