测试开发技术网站
博客
设计
设计
开发
Python
测试
unittest
运维
Linux基础应用
CI/CD
CI/CD
数据库
数据库
云计算
云计算
云原生
云原生
爬虫
爬虫
数据分析
数据分析
人工智能
人工智能
登录
注册
Python中的集合及其常用方法
收藏本文
作者:redrose2100 类别: 日期:2022-05-04 10:06:35 阅读:736 次 消耗积分:0 分
[TOC] # 1 集合的定义和特点 * (1) 集合是用花括号括起来的,集合的特点是元素没有顺序,元素具有唯一性,不能重复 ```python >>> a={1,2,3,4} >>> type(a)
>>> a={1,2,3,1,2,3} >>> a {1, 2, 3} ``` # 2 集合的常用运算 * (1)集合元素没有顺序,所以不能像列表和元组那样用下标取值 ```python >>> a={1,2,3} >>> a[0] Traceback (most recent call last): File "
", line 1, in
TypeError: 'set' object is not subscriptable ``` * (2)集合也不支持加法运算 ```python >>> [1,2,3]*3 [1, 2, 3, 1, 2, 3, 1, 2, 3] >>> {1,2,3}+{4,5,6} Traceback (most recent call last): File "
", line 1, in
TypeError: unsupported operand type(s) for +: 'set' and 'set' ``` * (3)len() 函数返回集合的长度,即集合中元素的个数 ```python >>> a={1,2,3,4,5} >>> len(a) 5 ``` * (4)max() 函数返回集合中元素的最大值 ```python >>> a={1,2,3,4,5} >>> max(a) 5 ``` * (5)min() 函数返回集合中元素的最小值 ```python >>> a={1,2,3,4,5} >>> min(a) 1 ``` * (6)"-"表示两个集合差集,A-B,即在A中不在B中的元素 ```python >>> a={1,2,3,4,5,6} >>> b={4,5,6,7,8,9} >>> a-b {1, 2, 3} ``` * (7) "|"表示两个集合的并集,A | B, 表示A,B中所有元素的集合 ```python >>> a={1,2,3} >>> b={4,5,6} >>> a | b {1, 2, 3, 4, 5, 6} ``` * (8) "&"表示两个集合的交集,A & B,表示既在A中又在B中的集合 ```python >>> a={1,2,3,4,5,6} >>> b={4,5,6,7,8,9} >>> a & b {4, 5, 6} ``` * (9) in,not in 判断集合中是否有某一元素 ```python >>> a={1,2,3,4,5,6} >>> 0 in a False >>> 0 not in a True >>> 3 in a True ``` * (10) sum() 返回集合中所有元素之和 ```python >>> a={1,2,3} >>> sum(a) 6 ``` # 3 集合常用的函数 * (1) add(elem) 向集合中增加一个元素,如果此元素已经存在于集合中,则不作任何处理 ```python >>> a={1,2,3} >>> a.add(4) >>> a {1, 2, 3, 4} >>> a.add(1) >>> a {1, 2, 3, 4} ``` * (2) clear() 清除集合中的所有元素 ```python >>> a={1,2,3} >>> a {1, 2, 3} >>> a.clear() >>> a set() ``` * (3)copy() 返回集合的一个浅拷贝 ```python >>> a={1,2,3,4} >>> b=a.copy() >>> b {1, 2, 3, 4} ``` * (4)pop() 从集合中弹出一个元素 ```python >>> a={1,2,3,4,5} >>> a {1, 2, 3, 4, 5} >>> b=a.pop() >>> b 1 >>> a {2, 3, 4, 5} ``` * (5)remove(elem) 从集合中去除某元素,若集合中没有此元素则会报错 ```python >>> a={1,2,3,4,5} >>> a.remove(3) >>> a {1, 2, 4, 5} >>> a.remove(7) Traceback (most recent call last): File "
", line 1, in
KeyError: 7 ``` * (6)union(set) 计算两个集合的合集,并返回一个新的集合,原来的两个集合没有变化 ```python >>> a={1,2,3,4,5,6} >>> b={3,4,5,6,7,8} >>> a {1, 2, 3, 4, 5, 6} >>> b {3, 4, 5, 6, 7, 8} >>> c=a.union(b) >>> c {1, 2, 3, 4, 5, 6, 7, 8} >>> a {1, 2, 3, 4, 5, 6} >>> b {3, 4, 5, 6, 7, 8} ``` * (7)update(set) 将set集合与原集合计算并集,并更新至原集合 ```python >>> a={1,2,3,4,5,6} >>> b={3,4,5,6,7,8} >>> a {1, 2, 3, 4, 5, 6} >>> b {3, 4, 5, 6, 7, 8} >>> a.update(b) >>> a {1, 2, 3, 4, 5, 6, 7, 8} >>> b {3, 4, 5, 6, 7, 8} ``` * (8)difference(set) 计算集合的差集,和“-”运算符一致 ```python >>> a={1,2,3,4,5,6} >>> b={4,5,6,7,8,9} >>> a.difference(b) {1, 2, 3} >>> a {1, 2, 3, 4, 5, 6} >>> b {4, 5, 6, 7, 8, 9} ``` * (9)difference_update(set) 计算差集,将结果更新至原集合 ```python >>> a={1,2,3,4,5,6} >>> b={4,5,6,7,8,9} >>> a {1, 2, 3, 4, 5, 6} >>> b {4, 5, 6, 7, 8, 9} >>> a.difference_update(b) >>> a {1, 2, 3} >>> b {4, 5, 6, 7, 8, 9} ``` * (10)discard(elem) 与remove(elem)功能一致,只不过discard移除的元素若不存在,不会报错 ```python >>> a={1,2,3,4,5,6} >>> a.discard(4) >>> a {1, 2, 3, 5, 6} >>> a.discard(10) >>> a {1, 2, 3, 5, 6} ``` * (11)intersection(set) 计算两个集合的交集,结果生成新的集合,原有的集合不变 ```python >>> a={1,2,3,4,5,6} >>> b={4,5,6,7,8,9} >>> a {1, 2, 3, 4, 5, 6} >>> b {4, 5, 6, 7, 8, 9} >>> a.intersection(b) {4, 5, 6} >>> a {1, 2, 3, 4, 5, 6} >>> b {4, 5, 6, 7, 8, 9} ``` * (12)intersection_update(set) 计算两个交集,结果更新至原有集合 ```python >>> a={1,2,3,4,5,6} >>> b={4,5,6,7,8,9} >>> a {1, 2, 3, 4, 5, 6} >>> b {4, 5, 6, 7, 8, 9} >>> a.intersection_update(b) >>> a {4, 5, 6} >>> b {4, 5, 6, 7, 8, 9} ``` * (13)isdisjoint(set) 判断两个是否有公共元素,若没有返回True,否则返回False ```python >>> a={1,2,3,4,5,6} >>> b={4,5,6,7,8,9} >>> c={7,8,9,0} >>> a.isdisjoint(b) False >>> a.isdisjoint(c) True ``` * (14)issubset(set) 判断是否为子集,若是set的子集,返回True,否则返回False ```python >>> a={1,2,3,4} >>> b={1,2,3,4,5} >>> a.issubset(b) True >>> c={2,3,4,5} >>> a.issubset(c) False ``` * (15)issuperset(set) 判断是否为超集,若是返回True,否则返回False ```python >>> a={1,2,3,4,5,6} >>> b={1,2,3,4} >>> c={1,2,3,4,5,6,7,8} >>> a.issuperset(b) True >>> a.issuperset(c) False ``` * (17)symmetric_difference(set) 返回两个集合的不重复的元素,原有的集合不变 ```python >>> a={1,2,3,4,5,6} >>> b={4,5,6,7,8,9} >>> a {1, 2, 3, 4, 5, 6} >>> b {4, 5, 6, 7, 8, 9} >>> a.symmetric_difference(b) {1, 2, 3, 7, 8, 9} >>> a {1, 2, 3, 4, 5, 6} >>> b {4, 5, 6, 7, 8, 9} ``` * (17)symmetric_difference_update(set) 返回两个集合的不重复的元素,并将结果更新至原有集合 ```python >>> a={1,2,3,4,5,6} >>> b={4,5,6,7,8,9} >>> a {1, 2, 3, 4, 5, 6} >>> b {4, 5, 6, 7, 8, 9} >>> a.symmetric_difference_update(b) >>> a {1, 2, 3, 7, 8, 9} >>> b {4, 5, 6, 7, 8, 9} ```
始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/83
上一篇:
Python中的元组及其常用方法
下一篇:
Python中的字典及其常用用法
搜索
个人成就
出版书籍
《Pytest企业级应用实战》
测试开发技术全栈公众号
测试开发技术全栈公众号
DevOps技术交流微信群
加微信邀请进群
常用网站链接
开源软件洞察
云原生技术栈全景图
Python语言官方文档
Golang官方文档
Docker官方文档
Jenkins中文用户手册
Scrapy官方文档
VUE官方文档
Harbor官方文档
openQA官方文档
云原生开源社区
开源中国
Kubernetes中文文档
Markdown语法官方教程
Kubernetes中文社区
Kubersphere官方文档
BootStrap中文网站
JavaScript中文网
NumPy官方文档
Pandas官方文档
GitLink确实开源网站
数据库排名网站
编程语言排名网站
SEO综合查询网站
数学加减法练习自动生成网站
Kickstart Generator
文章分类
最新文章
最多阅读
特别推荐
×
Close
登录
注册
找回密码
登录邮箱:
登录密码:
图片验证码:
注册邮箱:
注册密码:
邮箱验证码:
发送邮件
注册邮箱:
新的密码:
邮箱验证码:
发送邮件