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实现多行注释的另类方法
Aug 22 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
Apr 14 Python
python使用append合并两个数组的方法
Apr 28 Python
Python heapq使用详解及实例代码
Jan 25 Python
Django中url的反向查询的方法
Mar 14 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
Python爬取商家联系电话以及各种数据的方法
Nov 10 Python
Django 日志配置按日期滚动的方法
Jan 31 Python
python爬取Ajax动态加载网页过程解析
Sep 05 Python
python队列原理及实现方法示例
Nov 27 Python
python操作redis数据库的三种方法
Sep 10 Python
python 实现学生信息管理系统的示例
Nov 28 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
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
浅析php工厂模式
2014/11/25 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
javascript Select标记中options操作方法集合
2008/10/22 Javascript
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
深入理解python try异常处理机制
2016/06/01 Python
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
Python Http请求json解析库用法解析
2020/11/28 Python
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
网站设计师的岗位职责
2013/11/21 职场文书
旅游节目策划方案
2014/05/26 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python
Python中的套接字编程是什么?
2021/06/21 Python