python中集合的使用

在python中对集合的操作主要包括:集合的创建、集合中数据的添加、集合中数据的删除、集合中数据的查找。

1、集合的创建

在python中集合的创建方法有直接创建和使用关键字创建。

1.1、直接创建集合

集合的直接创建方法是使用大括号(即:{}里面添加数据)进行创建。注意:集合创建后,数据是唯一的(不能同时存在多个相同的数据),如果数据全为数字,会按从小到大的顺序进行排列。一个集合中能够存在多种数据类型的数据。
语法:

变量名 = {数据1, 数据2, ......}

在python中的应用:

# 直接创建集合
s1 = {1, 2, 3, 4, 5}    # 创建存储数字的集合
s2 = {1, 3, 5, 2, 4}    # 创建存储数字的集合,但是数字是乱序
s3 = {1, 2, 2, 3, 4}    # 创建存储数字的集合,但是数字存在重复
s4 = {'123456'}     # 创建字符的集合
s5 = {1, 2, 3, '4', '56', False}    # 创建存储不同数据类型的数据的集合
s6 = {}     # 创建空集合# 输出结果
print(f's1 = {s1}')
print(f's2 = {s2}')
print(f's3 = {s3}')
print(f's4 = {s4}')
print(f's5 = {s5}')
print(f's6 = {s6}')

运行之后的结果:

s1 = {1, 2, 3, 4, 5}
s2 = {1, 2, 3, 4, 5}
s3 = {1, 2, 3, 4}
s4 = {'123456'}
s5 = {False, 1, 2, 3, '56', '4'}
s6 = {}

1.2、使用关键字创建集合

在python中可以使用关键字set()创建集合。注意:使用set()创建集合时只能创建空的集合或者括号内添加一个字符串。当括号内添加有字符串时创建的为将字符串拆分为单个字符后创建的集合,并且字符是乱序排列的。
语法:

变量名 = set()

在python中的应用:

s1 = set("123456")      # 在括号内添加了字符串
s2 = set()  # 创建空集合# 输出结果
print(f's1 = {s2}')
print(f's2 = {s1}')

运行之后的结果:

s1 = {'6', '3', '5', '4', '1', '2'}
s2 = set()

2、集合中添加数据

在python中向集合中添加数据使用的是add()、update()两种方法。注意:使用add()方法添加数据时是添加的单个数据,update()方法添加数据是添加一个序列。

2.1、add()方法添加数据

add()方法:向集合中添加数据,如果集合中存在需要添加的数据,则不做任何操作。注意:使用add()方法添加数据时,一次只能添加一个数据,并且数据类型不能是列表、集合、字典。
语法:

变量名.add(需要添加的数据)

在python中的应用:

s1 = {1, 2, 3, 4, 5}    # 创建一个集合
print(f's1 = {s1}')      # 输出原集合# 使用add()方法添加数据
s1.add(5)   # 添加s1中存在的数据
print(f's1 = {s1}')
s1.add(6)   # 添加s1中不存在的数据
print(f's1 = {s1}')
s1.add('7, 8')   # 添加s1中不存在的数据,添加的是字符串
print(f's1 = {s1}')

运行之后的结果:

s1 = {1, 2, 3, 4, 5}
s1 = {1, 2, 3, 4, 5}
s1 = {1, 2, 3, 4, 5, 6}
s1 = {1, 2, 3, 4, 5, 6, '7, 8'}

2.2、update()方法添加数据

update()方法:向集合中添加数据。如果数据存在,则不会被添加到集合中。注意:添加的数据是一个序列,可以同时添加多个数据,添加数据的数据类型可以为元组、列表、集合。添加的数据为字符串时会拆分为单个字符然后添加到集合中。
语法:

变量名.update(数据)

在python中的应用:

s2 = {'a', 'b', 'c', 'd'}   # 创建集合
print(f's2 = {s2}') # 输出原集合
# 使用update()方法向集合中添加数据
s2.update('d', 'e')     # 添加多个数据
print(f's2 = {s2}')
s2.update(('f', 'g'))   # 添加元祖类型的数据
print(f's2 = {s2}')
s2.update(['h', 'i'])   # 添加列表类型的数据
print(f's2 = {s2}')
s2.update({'j', 'k'})   # 添加集合类型的数据
print(f's2 = {s2}')
s2.update('imn', 'opq')     # 添加字符串类型的数据
print(f's2 = {s2}')

运行之后的结果:

s2 = {'c', 'a', 'd', 'b'}
s2 = {'e', 'c', 'b', 'a', 'd'}
s2 = {'e', 'c', 'f', 'g', 'b', 'a', 'd'}
s2 = {'e', 'c', 'f', 'h', 'g', 'b', 'i', 'a', 'd'}
s2 = {'k', 'e', 'c', 'f', 'h', 'g', 'b', 'i', 'a', 'j', 'd'}
s2 = {'k', 'm', 'q', 'e', 'c', 'n', 'f', 'h', 'g', 'o', 'b', 'p', 'i', 'a', 'j', 'd'}

3、集合中删除数据

在python中集合删除数据的方法有remove()方法、discard()方法、pop()方法。

3.1、remove()方法删除数据

remove()方法:删除集合中指定的数据,如果需要删除的数据不存在会报错。注意:remove()方法是通过数据来指定集合中需要删除的数据。当集合中存在元组时,不能只删除元组中的某一个数据,需要将元组全部删除,否则会报错。
语法:

变量名.remove(需要删除的数据)

在python中的应用:

s1 = {1, 2, 3, (4, 5)}
print(f's1 = {s1}')     # 输出原集合
# 使用remove()方法删除数据
s1.remove(3)
print(f's1 = {s1}')
# s1.remove(4)  # 会报错
# print(f's1 = {s1}')
s1.remove((4, 5))   # 删除元组
print(f's1 = {s1}')

运行之后的结果:

s1 = {(4, 5), 1, 2, 3}
s1 = {(4, 5), 1, 2}
s1 = {1, 2}

3.2、discard()方法删除数据

discard()方法:删除集合中指定的数据,如果需要删除的数据不存在不会报错。注意:discard()方法是通过数据来删除集合中的数据。
语法:

变量名.discard(需要删除的数据)

在python中的应用:

s2 = {'a', 'b', 'c', 'd'}   # 创建集合
print(f's2 = {s2}') # 输出原集合
# 使用discard()方法删除数据
s2.discard('a')   # 当数据存在时
print(f's2 = {s2}')
s2.discard(7)   # 当数据不存在时,运行不会报错
print(f's2 = {s2}')

运行之后的结果:

s2 = {'c', 'd', 'a', 'b'}
s2 = {'c', 'd', 'b'}
s2 = {'c', 'd', 'b'}

3.3、pop()方法删除数据

pop()方法:随机删除集合中的数据,并且将被删除的数据返回。
语法:

被删除的数据 = 变量名.pop()

在python中的应用:

s3 = {1, 2, 3, 4, 5}   # 创建集合
print(f's3 = {s3}')  # 输出原集合
# 使用pop()方法删除数据
p1 = s3.pop()
print(f's3 = {s3}')
print(f'p1 = {p1}')

运行之后的结果:

s3 = {1, 2, 3, 4, 5}
s3 = {2, 3, 4, 5}
p1 = 1

4、集合中查找数据

集合中查找数据使用的是in 和 not in关键字。
in:判断数据是否在集合中,如果存在返回True,不存在返回False。
not in:判断数据是否在集合中,如果存在返回False, 不存在返回True。
语法:

需要查找的数据 in 集合名称      # in的使用
需要查找的数据 not in 集合名称     # not in的使用

在python中的应用:

s1 = {1, 2, 3, 4, 5}   # 创建集合
print(f's1 = {s1}')  # 输出原集合
# 数据查找
# in的使用
print(f'3在s1中:{3 in s1}')
print(f'7在s1中:{7 in s1}')
# not in的使用
print(f'3不在s1中:{3 not in s1}')
print(f'7不在s1中:{7 not in s1}')

运行之后的结果:

s1 = {1, 2, 3, 4, 5}
3在s1中:True
7在s1中:False
3不在s1中:False
7不在s1中:True

python中集合的使用相关推荐

  1. 站长在线Python精讲:Python中集合的交集、并集、差集和对称差集运算方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中集合的交集.并集.差集和对称差集运算方法详解>.主要讲的是集合运算的相关的概念,及运算方法,包括:集合的交集. ...

  2. Python中集合set和字典dict的用法区别

    Python中集合set和字典dict的用法区别 核心知识点 Python列表(list).元组(tuple).字典(dict)和集合(set)详解 Python set集合详解 1. Python创 ...

  3. python中集合运算_python集合运算

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 每个韦恩(venn)图中的红色部分是给定集合运算得到的结果.? python 集 ...

  4. python中集合运算_Python中的集合操作与集合运算

    Python中的集合是一种无序的,无重复值的数据结构类型.Python中的集合可以用来检测元素检测或消除重复的元素. 一.python 集合概述 (1)Python中的集合元素是无序的,即元素没有顺序 ...

  5. python中集合set,字典dict和列表list的区别以及用法

    python中set代表集合,list代表列表,dict代表字典 set和dict的区别在于,dict是存储key-value,每一个key都是唯一的,set相对于dict存储的是key,且key是唯 ...

  6. python中集合运算_入门 | 一文带你了解Python集合与基本的集合运算

    原标题:入门 | 一文带你了解Python集合与基本的集合运算 选自DataCamp 作者:Michael Galarnyk 参与:Geek Ai.思源 一般我们熟悉 Python 中列表.元组及字典 ...

  7. python中集合变量_详解python的变量缓存机制

    变量的缓存机制 变量的缓存机制(以下内容仅对python3.6.x版本负责) 机制 只要有两个值相同,就只开辟一个空间 为什么要有这样的机制 在计算机的硬件当中,内存是最重要的配置之一,直接关系到程序 ...

  8. python中集合用法大全

    目录 序言 1.0 set()函数 2.0 add()函数 3.0 clear()函数 4.0 copy()函数 5.0 discard()函数 6.0 remove()函数 7.0 pop()函数 ...

  9. [转载] python中集合的表示_Python No.18_集合以及表示符号

    参考链接: python中的issubset # !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hugolinhj list_1 = [1, ...

最新文章

  1. qt用ODBC连接excel
  2. iOS获取webView的内容或修改网页上的内容
  3. unix grep命令的大致实现
  4. JavaScript入门(part8)--数组
  5. Spring Cloud-鸿鹄Cloud分布式微服务云系统—架构图
  6. 制作安装媒体来部署额外域控制器
  7. 一款非常好用的音乐标签及管理工具:Yate for Mac
  8. UE4 异步资源加载
  9. SQLite集成与用法
  10. 博弈论笔记:动态博弈
  11. Sublime 高亮汇编asm文件
  12. sql注入三种工具(主要sqlmap)
  13. python 相关系数显著检验_Python dataframe 算相关系数用corr(),算不出结果
  14. 利用python爬取租房信息网_Python3爬虫实战:以爬取小猪短租租房信息为例
  15. ios实现video自动播放
  16. Python基础01 Hello World!
  17. vivo手机系统打印服务器,原来vivo手机自带扫描功能,文件瞬间电子化!几千的扫描仪省下了...
  18. 一封超级牛的数据库程序员的情书表白
  19. 《OD学Oozie》20160807Oozie
  20. mysql使用exists、in、distinct区别

热门文章

  1. oracle ogg在线配置,Oracle OGG配置
  2. e580显卡驱动_联想ThinkPad E580笔记本8代CPU如何win10改win7
  3. win7显卡nvidi466.77驱动和补丁KB4474419和KB4490628
  4. “泰迪杯”挑战赛 - 基于Java的面向网络舆情的关联度分析(附算法代码)
  5. pythonios免费下载_附近的兼职
  6. struct结构体在32位系统和64位系统的存储空间的不同
  7. 使用BlazeDS与Flash Builder4.5整合Java EE应用
  8. 计算机职称能落户吗,计算机软考证书可以在广州职业技能人才落户么?
  9. 文件复制传输及其打包压缩
  10. c语言三子棋详解!!! (电脑智能下棋)(附上完整代码)