集合(set)—数据容器

一、集合的定义

集合同列表、元组一样是可以封装多个不同类型的元素在内的数据容器,但集合最主要的不同点就是:不支持元素的重复 (自带去重功能)、内容无序(不支持下标索引访问)。

定义集合使用"{}",元素之间用逗号隔开。

python 复制代码
#定义集合字面量
{1,2,3,'a','d','app'}
#定义集合变量
my_set1={'a','加菲猫','s',5,0,'加菲猫'}
#定义空集合
my_set2=set()

print(my_set1)
print(type(my_set1))
print(my_set2)
print(type(my_set2))

输出:

{'s', 0, 5, '加菲猫', 'a'}

<class 'set'>

set()

<class 'set'>

二、集合的方法

集合是无序的,不支持下标索引访问。集合的方法主要包括:增加元素、删除元素、从集合中随机取出元素、清空集合、取出2个集合的差集,消除2个集合的差集,合并2个集合,统计集合内元素数量。

2.1增加新元素

语法:集合.add(元素)

功能:将指定元素,添加到集合内

具体应用:

python 复制代码
set1={12,34,'b','x','blue'}
print(set1)
set1.add('明天')
print(set1)

输出:

{'b', 34, 'x', 'blue', 12}

{'b', 34, 'x', '明天', 'blue', 12}

2.2删除元素

语法:集合.remove(元素)

功能:将指定元素,从集合内移除

具体应用:

python 复制代码
set1={12,34,'b','x','blue'}
print(set1)
set1.remove('blue')
print(set1)

输出:

{'x', 34, 'b', 'blue', 12}

{'x', 34, 'b', 12}

2.3从集合中随机取出元素

语法:集合.pop( )

功能:从集合中随机取出一个元素,同时集合本身被修改,元素被移除。

具体应用:

python 复制代码
set1={12,34,'b','x','blue'}
print(set1)
x=set1.pop()#用变量x保存取出的元素
print(x)#打印随机取出的这个元素
print(set1)

输出:

{'blue', 34, 'x', 'b', 12}

blue

{34, 'x', 'b', 12}

2.4清空集合

语法:集合.clear( )

功能:清空集合(得到一个空集合)

具体应用:

python 复制代码
set1={12,34,'b','x','blue'}
print(set1)
set1.clear()
print(set1)

输出:

{34, 'x', 'blue', 'b', 12}

set()

2.5取出2个集合的差集

语法:集合1.difference(集合2)

功能:取出集合1和集合2的差集(集合1有而集合2没有的),得到一个新集合,集合1和集合2不变

具体应用:

python 复制代码
set2={1,2,3,4,5,6,7,8}
set3={1,0,3,9,5,6,0,8}
set4=set2.difference(set3)
print(set2)
print(set3)
print(set4)

输出:

{1, 2, 3, 4, 5, 6, 7, 8}

{0, 1, 3, 5, 6, 8, 9}

{2, 4, 7}

2.6消除2个集合的差集

语法:集合1.difference_update(集合2)

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。(集合1被修改,集合2不变)

具体应用:

python 复制代码
set2={1,2,3,4,5,6,7,8}
print(set2)
set3={1,0,3,9,5,6,0,8}
set2.difference_update(set3)
print(set2)
print(set3)

输出:

{1, 2, 3, 4, 5, 6, 7, 8}

{2, 4, 7}

{0, 1, 3, 5, 6, 8, 9}

2.7合并2个集合

语法:集合1.union(集合2)

功能:将集合1和集合2组合成新集合3,原本的集合1和集合2不变

具体应用:

python 复制代码
set4={1,2,3,4}
set5={4,5,6,7}
set6=set4.union(set5)
print(set4)
print(set5)
print(set6)

输出:

{1, 2, 3, 4}

{4, 5, 6, 7}

{1, 2, 3, 4, 5, 6, 7}

注意:集合自带去重功能,所以新集合set6中只有1个4。

2.8统计集合内的元素数量

语法:len(集合)

功能:统计集合内有多少个元素

具体应用:

python 复制代码
set1={12,34,'b','x','blue'}
count=len(set1)
print(count)

输出:

5

三、集合的遍历

由于集合无序的特点,不支持下标索引访问,所以集合不能通过while循环遍历。

集合可以通过for循环进行遍历:

python 复制代码
set1={12,34,'b','x','blue'}
for i in set1:
    print(i)

输出:

blue

34

b

12

x

四、集合的特点

  1. 可以容纳多个不同类型的数据
  2. 数据是无序存储的(不支持下标索引)
  3. 不允许重复数据存在 (自动去重)
  4. 可以修改(增加或删除元素等)
  5. 支持for循环但不支持while循环
相关推荐
张张123y5 小时前
后端第一课:输入 URL 后发生了什么?我用手写 Socket 把全链路跑通了
python·websocket·ai·socket·url·后端开发
白帽攻防录6 小时前
SRC 挖洞:PostScript 打印机驱动双 RCE,打印服务器怎么变成内网跳板
开发语言·网络安全·php·内网安全
十年Java程序媛7 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
全栈弄潮儿7 小时前
Python实战第7期:字典与集合
后端·python·编程语言
2603_965148117 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya8 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
把我格子衫拿来8 小时前
Dice 很高就够了吗?分割评价中的 IoU、表面距离与 HD95
python·图像分割·模型评估·医学影像·dice
学逆向的8 小时前
C 循环结构的执行效率分析
c语言·开发语言·数据结构·网络安全
曲径海盗8 小时前
【Python 学习第 31 天】复习:变量与数据类型 等 3 题
python·学习笔记·编程入门
Data_Journal8 小时前
如何绕过 Cloudflare:网页抓取的最佳方法
网络·python