python集合类型中的元素是有序的_python基础篇:很有意思的数据类型,集合(set) 常用去去重...
Python集合(set),是一个很有意思的数据结构。从形式上看,它像字典有key但没有value,它的写法是这样的s = {'a', 'b', 'c'},是不是像一个没有value的字典?另一方面,它又像是一个用花括号替换了方括号的列表,但它不能像列表那样用索引访问元素。
集合最常用的特性是元素不能重复,所以常用于去重。
1 li=[1,2,3,4,5,1,2,3]2 li=list(set(li))3 print(li)li=[1,2,3,4,5]
其实,Python集合在内部实现上就是一个没有value的字典,所以它跟字典很像。既然和字典很像,那么还要集合干什么?集合主要用来干什么呢?
集合主要用于测试一个对象是不是在一堆对象集里面,也就是in运算。这个功能其实列表也可以,比如1 in [2,3,4,5],但是用列表的速度远远低于集合,尤其是在这一堆对象的数量非常大时。
列表因为是顺序存储的,它的查找时间复杂度是O(n),而集合是用hash table实现的,其时间复杂度是O(1)。
Python集合(set)的创建
集合可以通过set()来创建一个空集合,也可以把一个列表转换为集合。类似字典那样在花括号内可以放用逗号,隔开的多个对象:
跟字典的键不能是可变对象一样,集合里面也不能是列表、集合、字典:
Python集合(set)的访问
集合不能像列表那样通过索引访问内部某一个元素,只能通过遍历访问全部元素,或通过变量名访问整个集合:
集合相关的内置函数
Python内置了一些函数可以用于操作集合,它们是:
- len()
- 返回集合的长度,即集合包含的元素的个数。空集合的长度是0
- any()和all()
- 类似于对列表、tuple的操作。
- any(): 只要集合有一个元素为True则返回True;
- all(): 只有集合的所有元素都为True才返回True;
跟空字典一样,它却认为是所有元素都为True,all(set())返回True。
- sorted()
- 跟操作列表、tuple的效果一样,它把集合的所有元素进行排序
in 运算符
跟列表,元组一样,in用来检验一个对象是不是在集合中:
集合的内置方法:
(1)add(x)
把对象x添加到集合中。
(2)update()
把多个对象添加到集合中。
(3)discard(x) 和 remove(x)
这两个都是从集合中删除一个元素x。不同的是,如果x不在集合中,discard()会忽略;而remove()会抛出KeyError的错误:
(4)pop()
类似字典的pop()和列表的pop(),都是从其中删除一个元素并返回该元素。因为集合没有key和索引的概念,所以集合的pop()不带参数。
(5)clear()
清空一个集合
(6)copy()
跟字典的copy()一样,返回一个集合的深拷贝。
(7)union()
求两个或多个集合的并集,即把这些集合的所有元素放在一起组成新的集合并返回。它不改变原来的集合。
(8)intersection()
求两个或多个集合的交集,即把这些集合中共同含有的元素放在一起组合成新的集合并返回。同样它也不改变原来的集合。
(10)difference()
求一个集合S与另一个或多个集合的差集,即把只包含在集合S却不在做比较的集合中的元素组成新的集合并返回,同样它也不改变原来的集合。相当于集合的减法。
总结
集合是没有了value的字典,但它也有自己的个性。
练习
- 熟悉对集合的各种操作。
- 想一想集合可以和日常生活中哪些场景联系起来。
如果你觉得本文对你的学习有帮助的话,不妨点个赞呗。
python集合类型中的元素是有序的_python基础篇:很有意思的数据类型,集合(set) 常用去去重...相关推荐
- python集合类型中的元素是有序的_Python基础-2-变量和数据类型(2)-列表、元组、字典、集合...
# ************************************************** ## 3.列表# ************************************** ...
- python集合类型中的元素是有序的_Python数据类型之集合set
# 集合:用来存储一个无序的不重复的元素序列 # 集合的标识也是大括号{},中间的元素使用逗号","隔开 # 集合的创建方式: # set(序列) # s = {"123 ...
- python集合类型中的元素是有序的_数据类型;有序集合类型(sorted set)
有序集合sortedset 一特点 1.有序.去重 2.元素是字符串类型 3.每个元素都关联着一个浮点数分值(score),并按照分支从小到大的顺序排列集合中的元素(分值可以相同) 4.最多包含2^3 ...
- 如何修改Series和DataFrame类型中的元素值_「ES6基础」Symbol介绍:独一无二的值
ES6之前我们都清楚JS有六种数据类型:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object),今天笔者讲的Symbol类型是ES6 ...
- Python 获取list 中指定元素出现的次数
Python 获取list 中指定元素出现的次数 使用list 的count 方法 list_a = [1, 2, 3, 1, 4, 5, 1] print("1 出现的次数: %d&quo ...
- python 替换字符串中的元素
python 替换字符串中的元素 def str_replace(old_str,old,new):"""在 old_str 字符串中,把 old 替换成 new:par ...
- Python返回列表中某个元素的出现次数list.count()方法
[小白从小学Python.C.Java] [Python-计算机等级考试二级] Python返回列表中某个元素的出现次数 list.count()方法 选择题 请问以下Python代码输出的结果是什么 ...
- python取出frozenset中的元素存到列表list
python取出frozenset中的元素存到列表 由于frozenset中的元素不能像set一样进行增加(.add())也不能减少(.remove)操作 所以我们希望用列表list来存frozens ...
- python 判断list 中重复元素最后1次出现的位置
方法 1 把list 转string 之后使用rfind python 判断list 中重复元素最后1次出现的位置 ,list 中没有直接方法判断 不过string 有find 和 rfind的 ,f ...
最新文章
- 解决push的时候有时候会卡一下的问题
- udp tcp ip 校验和对比
- JAVA之JVM GC 机制与性能优化
- stm32f103插拔pc端的串口引起的问题及解决办法
- spring cloud eureka注册原理-注册失败填坑
- 一些CFD名词缩写的含义(持续更新中)
- 《深入浅出通信原理》一句话短评
- idea设置护眼主题
- 【POJ】1321-棋盘问题 n皇后、dfs
- 408计算机组成原理学习:数据的表示与计算
- [jzoj5236]【NOIP2017模拟8.7A组】利普希茨
- vue生命周期(简短精干篇)
- 360安全安卫士自带的卸载程序的文件在哪里
- 微信小程序 - 无法获取云端数据库中的数据的问题(修改云端数据库权限)
- apt安装golang
- 6.亿级流量电商详情页系统实战
- zigbee 问题一:协调器究竟如何选择信道?
- 003问题:约瑟夫问题(筛法解决)
- android dex文件过多,意外的最高级别异常:com.android.dex.DexException:定义了多个dex文件...
- 【Vue.js】Vue.js组件库Element中的单选框、多选框、输入框和计数器
热门文章
- ubuntu 上安装mysql
- VS2008 Web Application和Web Site的区别[转]
- 刚刚,任正非为姚安娜商标事件道歉
- 声明式智能推荐系统应用架构探索
- 【报告分享】京东大数据202女性消费趋势报告.pdf(附下载链接)
- 【报告分享】抖音蓝V账号定位及外化罗盘.pdf(附下载链接)
- 解压tar.xz文件和tar.gz文件
- 水土不服?谈一谈机器学习在金融风控实践经验
- python session模块_Python requests模块session代码实例
- java 删除.svn_使用JAVA的程序删除项目中的SVN目录