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< ...
随机推荐
- php获取文件的文件名(误区)
文件路径:$path = '/home/files/1234.jpg'; php获取文件名,大家应该是轻车熟路了,写个小函数,分分钟 <?php //获取文件名 function get_fil ...
- Linux 命令个人笔记
[表示命令]man -f [] 显示一个命令的功能whatis [] 显示一个命令的功能ls -lR | grep '^-' | wc -l 统计一个目录下总共有多少个文件head [-n numbe ...
- js对数组、对象的深拷贝、复制
基本类型的数据是存放在栈内存中的,而引用类型的数据是存放在堆内存中的 基本类型:Number Boolean undefined String Null 引用类型:Object Function js ...
- DRF框架学习总结
DRF框架安装配置及其功能概述 Django与DRF 源码视图解析 DRF框架序列化和返序列化 DRF框架serializers中ModelSerializer类简化序列化和反序列化操作 DRF源码s ...
- 浅谈celery的坑
celery celery的使用以及在Django中的配置,不详细介绍,主要记录在Django中使用的坑点. 坑点 时区问题 celery默认的时区是世界标准时间,比东八区慢了8个小时,如果发布定时任 ...
- Fiddler的基本使用
目录 清空历史请求 请求所消耗的时间 发送的数据在 设置fiddler过滤请求 模拟弱网环境 Ctrl+R 拦截数据,拦截数据又称"打断点" fiddler开启的时候就是默认开始抓 ...
- 实验吧之【who are you?】(时间盲注)
地址:http://ctf5.shiyanbar.com/web/wonderkun/index.php 这道题点开看见your ip is :xxx.xxx.xx.xxx 试了一些 最后发现是XFF ...
- JavaScript专题之事件循环
准备知识 1. 进程(process) 进程是系统资源分配一个独立单位,一个程序至少有一个进程.比方说:一个工厂代表一个 CPU, 一个车间就是一个进程,任一时刻,只能有一个进程在运行,其他进程处于非 ...
- [NOIp2010] luogu P1514 引水入城
跟 zzy, hwx 等人纠结是否回去上蛋疼的董老板的课. 题目描述 如图所示.你有一个 N×MN\times MN×M 的矩阵,水可以从一格流到与它相邻的格子,需要满足起点的海拔严格高于终点海拔.定 ...
- Cocos2d-x 学习笔记(11.7) Repeat RepeatForever
1. 成员变量 Repeat: unsigned int _times; //create参数 unsigned int _total; //执行的次数 float _nextDt; //startW ...