python集合能干吗


Posted in Python onJuly 19, 2020

一、什么是集合:

集合(set)是一个无序的不重复元素序列。

重点:集合里边的元素是不可重复的并且集合内的元素还是无序的。

集合是一个可变容器

集合内的数据对象都是唯一的(不能重复)

集合是可迭代对象

集合相当于是只有键没有值得字典(键就是集合中的数据)

集合内的元素可以设置不可变类型frozenset()

集合pop()删除的时候类似队列先进先出 ,是类似。

也就是说,集合可以像元组一样,设置不可改变的类型;也可以默认像字典,列表一样,可以迭代改变;同时集合里的元素可以是列表,元组,字典。

二、为什么要使用集合

集合的特点决定了它简单,高效,速度快。

例如当用列表去重的时候:

list1=[1,2,3,4]
list2=[3,4,5,6]
list3=[]
for i in list1:
  if i in list2:
    list3.append(i)
print(list3)

利用集合去重:

my_list = [1, 2, 3, 4, 2, 3, 1, 2, 2]
# 转化为集合
my_set = set(my_list)
print(list(my_set))

# 结果

[1, 2, 3, 4]

三、集合可以进行如下基本操作:

1、 创建字典

可使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

>>> my_set = set(('apple',))
>>> my_set
{'apple'}

2、添加元素(add(),update())

# add 作为一个整体添加到集合中
my_set = set()
my_set.add("abc")
print(my_set)  
#update 是把要传入的元素拆分,做为个体传入到集合中
my_set = set()
my_set.update("abc")
print(my_set)

3、删除元素(remove(),pop(),discard())

#remove 如果集合种有,则直接删除;如果没有,程序报错 格式:集合名.remove(元素)
my_set = {11, 13, 15} 
my_set.remove(13)
print(my_set) my_set.remove(131)
print(my_set)  
#pop 随机删除集合中的元素 如果集合中没有元素则程序报错
my_set = {11, 13, 15}
my_set.pop()
print(my_set)  
#discard 如果集合中元素存在,直接删除; 如果元素不存在 不做任何操作  格式: 集合名.discard(元素)
my_set = {11, 13, 15} 
my_set.discard(13)
print(my_set) 
my_set.discard(131)
print(my_set)

4、交集( & )

set1 = {9, 2, 3, 4}
set2 = {3, 4, 5, 16}
new_set = set1 & set2
print(new_set)
# result {3, 4}

5、 并集( | )

set1 = {1, 2, 3, 4}
set2 = {3, 5, 5, 6}
new_set = set1 | set2
print(new_set)
# result {1, 2, 3, 4, 5, 6}

6、 差集(-)

项在前一个集合中,但不在后一个集合中。

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
new_set = set1 - set2
print(new_set)
# result {1, 2}

7、对称差集( ^ )

即项在前一个集合或后一个集合中,但不会同时出现在二者中。即交集减去并集。

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
new_set = set1 ^ set2
print(new_set)
# result {1,2,5,6}

8、子集判断

set1 = { 3, 4}
set2 = {3, 4, 5, 6}
# 判断set1是否是set2的子集
print(set1.issubset(set2))
# result True

9、父集判断

set1 = { 3, 4}
set2 = {3, 4, 5, 6}
# 判断set1是否是set2的父集
print(set1.issuperset(set2))
# result False

10、迭代和枚举

s={34,56,76,34,56,54,43,23,56}
for i in s:
  print(i) ##迭代输出其内容
for i,v in enumerate(s):
  print('index: %s,value: %s' %(i,v))
"""
result:
index: 0,value: 34
index: 1,value: 43
index: 2,value: 76
index: 3,value: 54
index: 4,value: 23
index: 5,value: 56
"""

可观察出,集合会自动过滤掉相同元素。

知识点扩展

创建集合

1.使用直接量创建集合

注意:使用直接量不能创建空集合

s = {1,2,3}

s = {"hello",3.14,True,(2019,02,17)}

2.使用构造函数创建集合 - set

s = set() #创建空集合

s = set(iterable) #使用可迭代对象创建一个集合

s = set("ABC") # s = {'A','B','C'}

s = set([1,0,3.14,"hello"]) # s = {1,0,3.14,'hello'}

... ...

到此这篇关于python集合能干吗的文章就介绍到这了,更多相关python集合的作用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用稀疏矩阵节省内存实例
Jun 27 Python
Python 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
在Python的Django框架中使用通用视图的方法
Jul 21 Python
Python中input与raw_input 之间的比较
Aug 20 Python
Python基于回溯法子集树模板实现8皇后问题
Sep 01 Python
一百行python代码将图片转成字符画
Feb 19 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
python实现简单聊天室功能 可以私聊
Jul 12 Python
django rest framework serializer返回时间自动格式化方法
Mar 31 Python
Python持续监听文件变化代码实例
Jul 22 Python
学习Python需要哪些工具
Sep 04 Python
Python中BeautifulSoup通过查找Id获取元素信息
Dec 07 Python
python如何建立全零数组
Jul 19 #Python
解决python中0x80072ee2错误的方法
Jul 19 #Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 #Python
python中加背景音乐如何操作
Jul 19 #Python
python实现最短路径的实例方法
Jul 19 #Python
python等待10秒执行下一命令的方法
Jul 19 #Python
python怎么删除缓存文件
Jul 19 #Python
You might like
写一个用户在线显示的程序
2006/10/09 PHP
PHP面向对象编程快速入门
2006/12/14 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
使用php批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
PHP7新特性
2021/03/09 PHP
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
vue 循环加载数据并获取第一条记录的方法
2018/09/26 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
Vue.js中的高级面试题及答案
2020/01/13 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
python读取LMDB中图像的方法
2018/07/02 Python
python交互界面的退出方法
2019/02/16 Python
基于多进程中APScheduler重复运行的解决方法
2019/07/22 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
P/Invoke是什么
2015/07/31 面试题
法学专业本科生自荐信范文
2013/12/17 职场文书
我的中国心演讲稿
2014/09/04 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers