v>

软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
3.5 集合
学习目标:
1. 能够说出如何创建集合
2. 能够说出字典和集合的区别
3. 能够说出如何向集合中添加元素
4. 能够说出如何删除集合中的某个元素
5. 能够说出如何使用 for 循环来遍历集合
6. 能够说出如何计算两个集合的交集
7. 能够说出如何计算两个集合的并集
set集合是一个无序不重复元素集。由于set是一个无序集合,set并不记录元素位置,所以不支持下标操作和切片操
作.
3.5.1 创建集合
# 1. 创建一个空的set集合
my_set = set()
# 2. 创建一个包含元素的集合
my_set = {10, 20, 30, 40}
print(my_set)
# 3. 用一个容器来创建集合
# 注意:set会剔除重复元素
my_set = set([1, 2, 3, 4, 5, 5])
print(my_set)
# 4. 创建一个唯一元素的字符集合
my_set = set("hello world!")
print(my_set)
3.5.2 集合添加元素
向set集合中添加元素,可以使用add()函数和update()函数,add()可以一次添加一个元素,update()函数可以一次
添加多个元素.
# 创建一个空的集合
my_set = set()
# add()函数向set中添加元素
my_set.add(10)
my_set.add(20)
my_set.add(30)
# 打印set集合
print(my_set)
# update()函数添加多个元素
my_set.update([60, 40, 80, 90])
my_set.update((160, 140, 180, 190))
my_set.update("hello")
# 如果添加的元素是一个字典,那么将字典的key添加到集合中
58软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
# my_set.update({"name": "smith", "age": 1030})
print(my_set)
3.5.3 集合删除元素
删除set集合中的元素可以使用pop()、remove()函数、discard()函数
1. pop()函数会删除set集合中的任意一个元素,如果set集合为空,会抛出KeyError错误。
2. remove(element)函数从集合中删除一个元素,如果元素不存在,会抛出KeyError错误。
3. discard(val)函数删除集合中的一个元素,如果不存在,则不做任何事.
my_set = set([9, 2, 3, 4, 7])
# 删除任意一个元素
my_set.pop()
print(my_set)
# 删除指定元素
my_set.remove(4)
print(my_set)
# 删除元素
my_set.discard(3)
print(my_set)
3.5.4 集合遍历
# 创建一个空的集合
my_set = set([1, 2, 3, 4])
# 遍历set集合
for value in my_set:
print(value, end="|")
3.5.5 集合交集和并集
my_set1 = set([1, 2, 3, 4, 5])
my_set2 = set([3, 4, 5, 6, 7])
# 1. 求两个集合的并集
new_set1 = my_set1.union(my_set2)
# 或者
new_set2 = my_set1 | my_set2
print(new_set1)
print(new_set2)
# 2. 求两个集合的交集
new_set3 = my_set1.intersection(my_set2)
# 或者
new_set4 = my_set1 & my_set2
print(new_set3)
print(new_set4)
3.5.6 set应用: 统计字符个数
# 统计字符串中字符的个数
my_string = input("请输入任意字符串:")
# 先对字符串去重
59软件测试
广州博才科技开发有限公司
迅捷PDF编辑器
new_string = set(my_string)
# 字典记录字符出现次数
my_count = {}
# 遍历new_string
for ch in new_string:
my_count[ch] = my_string.count(ch)
# 输出结果
print(my_count)
3.5.7 小结
1. 集合使用一对花括号定义, 每一个元素是任意类型的对象, 不是键值对.
2. 集合不支持切片、索引操作.
3. 集合中的元素唯一且不重复.
4. 集合支持 for 循环遍历.
5. 集合的 add 方法可以向集合中添加一个元素.
6. 集合的 update 方法可以向集合中添加一个容器的元素.
7. 集合的 pop 方法删除set集合中的任意一个元素,如果set集合为空,会抛出KeyError错误.
8. 集合的 remove 方法从集合中删除一个元素, 如果元素不存在, 会抛出KeyError错误.
9. 集合的 discard 方法删除集合中的一个元素, 如果不存在, 则不做任何事.
10. 集合的 union 方法可以返回两个集合的并集.
11. 集合的 intersection 方法可以返回两个集合的交集.
60

python9的更多相关文章

  1. Python-9 函数

    #1 内建函数 乘方:pow() >>> pow(2,3) 8 >>> 取绝对值:abs() >>> abs(-1) 1 >>> ...

  2. Leecode刷题之旅-C语言/python-9.回文数

    /* * @lc app=leetcode.cn id=9 lang=c * * [9] 回文数 * * https://leetcode-cn.com/problems/palindrome-num ...

  3. python--9、进程池

    concurrent.futures模块 进程池中的进程是固定的,若是池中有任务结束后,等待的任务进来后由空闲的进程来处理. 导入方法三连发: from 标题的模块 import 如下:Process ...

  4. python--9、并发之多进程应用

    multiprocessing模块 想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程.Python提供了multiprocessing.  ...

  5. python--9、进程及并发知识

    进程 一个文件的正在执行.运行过程就成为一个进程.执行多个程序,把程序文件都加载到内存,并且多个程序的内存空间隔离--空间上的复用. 遇到IO等待,切CPU到别的程序,提升效率.没有IO,一个程序占用 ...

  6. Python---9高级特性

    一.切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', ' ...

  7. CRM客户关系管理系统(一)

    第一章.CRM介绍和开发流程 1.1.CRM简介 客户关系管理(CRM) 客户关系管理(customer relationship management)的定义是:企业为提高核心竞争力,利用相应的信息 ...

  8. 老男孩Python全栈学习 S9 日常作业 012

    1.斐波那契数列用递归实现:问第n个斐波那契数是多少 def fbnq(n): if n == 0 or n == 1: return 1 else: return fbnq(n-1)+fbnq(n- ...

  9. Python_迭代器、生成器、列表推导式,生成器表达式

    1.迭代器 (1)可迭代对象 s1 = ' for i in s1: print(i) 可迭代对象 示例结果: D:\Python36\python.exe "E:/Python/课堂视频/ ...

随机推荐

  1. Example With JdbcDaoSupport

    By extended the JdbcDaoSupport, set the datasource and JdbcTemplate in your class is no longer requi ...

  2. ASP.NET Core on K8S深入学习(7)Dashboard知多少

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 在第二篇<部署过程解析与Dashboard>中介绍了如何部署Das ...

  3. 一文了解:Redis主从复制

    Redis主从复制 主从复制 主从复制,将一台Redis服务器的数据,复制到其他Redis服务器.前者称为主(master)节点,后者称为从(slave)节点 . 在默认的情况下,Redis都是主节点 ...

  4. ECMAScript---object对象类型详解

    普通对象:由大括号包裹起来的,由零到多个属性名和属性值(键值对)组成的 那什么是属性呢? 属性:描述当前对象特征的,属性名是当前具备这个特征,属性值是这个特征的描述(专业语法,属性名称为键[key], ...

  5. CSS 之Grid网格大致知识梳理1

    CSS所提供的关于网格Grid属性让我们可以更方便编写页面以及布局,而它的一些主要应用属性如下: 1.将父容器的display属性值设置为grid 即可将其转换为网格容器: 2.在网格容器中添加列的属 ...

  6. GitExtensions使用教程

    GitExtensions工具使用教程 第一步:安装 1.双击:GitExtensions24703SetupComplete.msi <ignore_js_op> image001.pn ...

  7. Keras 实例 MNIST

    import numpy from keras.datasets import mnist from keras.models import Sequential from keras.layers ...

  8. 使用element-ui中table expand展开行控制显示隐藏

    问题讲解:在使用vue版本的ElementUI中的table功能的时候还是遇到了一些问题,可以说饿了么团队在这个UI框架的文档撰写已经非常不错了,不过还是有一些方法乍一看让人摸不着头脑,有些table ...

  9. 提示:unresolved import: PIL

    解决方法: 1.打开Window>Preferences>PyDev>Interpreters>Python Interpreter>Forced Builtins,点击 ...

  10. ZOJ-3964 Yet Another Game of Stones

    Yet Another Game of Stones 题意: Alice 和 Bob 在进行取石子游戏, 现在一共有n堆石子, 每堆石头有ai个, 然后每堆石头有一个bi属性, 如果bi == 0, ...