集合的创建

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

Python中的集合同数学中的集合概念类似,也是用于保存不重复元素的。它有可变集合(set)和不可变集合(frozenset)两种。本节所要介绍的可变集合是无序可变序列,而不可变集合在本书中不做介绍。在形式上,集合的所有元素都放在一对“{}”中,两个相邻元素间使用“,”分隔。集合最好的应用就是去掉重复元素,因为集合中的每个元素都是唯一的。

说明:在数学中,集合的定义是把一些能够确定的不同的对象看成一个整体,而这个整体就是由这些对象的全体构成的集合。集合通常用“{}”或者大写的拉丁字母表示。

集合最常用的操作就是创建集合,以及集合的添加、删除、交集、并集和差集等运算,下面分别进行介绍。

在Python中提供了两种创建集合的方法:一种是直接使用“{}”创建,另一种是通过set()函数将列表、元组等可迭代对象转换为集合。这里推荐使用第二种方法。

(1)直接使用“{}”创建集合

在Python中,创建set集合也可以像列表、元组和字典一样,直接将集合赋值给变量从而实现创建集合,即直接使用“{}”创建。语法格式如下:

setname = {element 1,element 2,element 3,…,element n}

参数说明:

l  setname:表示集合的名称,可以是任何符合Python命名规则的标识符。

l  element 1,element 2,element 3,…,element n:表示集合中的元素,个数没有限制,只要是Python支持的数据类型就可以。

注意:在创建集合时,如果输入了重复的元素,Python会自动只保留一个。

例如,有如下代码:

set1 = {'水瓶座','射手座','双鱼座','双子座'}

set2 = {3,1,4,1,5,9,2,6}

set3 = {'Python', 28, ('人生苦短', '我用Python')}

这段代码将创建以下集合:

{'水瓶座', '双子座', '双鱼座', '射手座'}

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

{'Python', ('人生苦短', '我用Python'), 28}

说明:由于Python中的set集合是无序的,所以每次输出时元素的排列顺序可能都不相同。

场景模拟:某大学的学生选课系统,可选语言有Python和C语言。现创建两个集合分别保存选择Python语言的学生姓名和选择C语言的学生姓名。

  实例12  创建保存学生选课信息的集合

在IDLE中创建一个名称为section_create.py的文件,然后在该文件中,定义两个包括4个元素的集合,再输出这两个集合,代码如下:

python = {'绮梦','冷伊一','香凝','梓轩'}                # 保存选择Python语言的学生姓名

c = {'冷伊一','零语','梓轩','圣博'}                    # 保存选择C语言的学生姓名

print('选择Python语言的学生有:',python,'\n')         # 输出选择Python语言的学生姓名

print('选择C语言的学生有:',c)                       # 输出选择C语言的学生姓名

运行实例后,将显示如图29所示的结果。

图29  创建保存学生选课信息的集合

(2)使用set()函数创建

在Python中,可以使用set()函数将列表、元组等其他可迭代对象转换为集合。set()函数的语法格式如下:

setname = set(iteration)

参数说明:

l   setname:表示集合名称。

l   iteration:表示要转换为集合的可迭代对象,可以是列表、元组、range对象等,也可以是字符串。如果是字符串,返回的集合将是包含全部不重复字符的集合。

例如,有如下代码:

set1 = set("命运给予我们的不是失望之酒,而是机会之杯。")

set2 = set([1.414,1.732,3.14159,2.236])

set3 = set(('人生苦短', '我用Python'))

这段代码将创建以下集合:

{'不', '的', '望', '是', '给', ',', '我', '。', '酒', '会', '杯', '运', '们', '予', '而', '失', '机', '命', '之'}

{1.414, 2.236, 3.14159, 1.732}

{'人生苦短', '我用Python'}

从上面创建的集合结果中可以看出,在创建集合时,如果出现了重复元素,那么将只保留一个,如在第一个集合中的“是”和“之”都只保留了一个。

注意:在创建空集合时,只能使用set()实现,而不能使用一对“{}”实现,这是因为在Python中,直接使用一对“{}”表示创建一个空字典。

下面将实例12修改为使用set()函数创建保存学生选课信息的集合。修改后的代码如下:

python = set(['绮梦','冷伊一','香凝','梓轩'])          # 保存选择Python语言的学生姓名

print('选择Python语言的学生有:',python,'\n')       # 输出选择Python语言的学生姓名

c = set(['冷伊一','零语','梓轩','圣博'])                # 保存选择C语言的学生姓名

print('选择C语言的学生有:',c)                        # 输出选择C语言的学生姓名

执行结果如下图所示。

说明:在Python中,创建集合时推荐采用set()函数实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/17987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络学习(九)|深入解析Cookie与Session:高级应用及安全实践

Cookie相关问题 Cookie的主要属性有哪些? Cookie的主要属性包括: name:Cookie的名称。value:Cookie的值。domain:Cookie所属的域。path:Cookie生效的路径。expires / max-age:Cookie的过期时…

网络学习(十) | 深入学习HTTPS与安全传输

文章目录 HTTPS与HTTP的关系基本概念主要区别关系发展趋势 HTTPS的加密原理与SSL/TLS协议加密原理加密机制总结 HTTPS的握手vs三次握手三次握手HTTPS握手过程区别总结 证书颁发机构(CA)与数字证书的验证证书颁发机构(CA)CA的主要功…

vue的axios配置超时时间;单个接口配置响应时间

vue项目中axios请求统一配置了超时时间,单独接口请求时重设超时时间 根据官网推荐:axios中文文档 1.配置的优先顺序 配置会以一个优先顺序进行合并。这个顺序是:在 lib/defaults.js 找到的库的默认值,然后是实例的 defaults 属性&…

【iOS】——GCD再学习

文章目录 一、GCD的定义二、GCD 任务和队列1.任务2.队列 三、GCD 的使用1.创建队列2.创建任务3.队列任务 组合方式并发队列 同步执行异步执行 并发队列同步执行 串行队列异步执行 串行队列同步执行 主队列在主线程中调用 同步执行 主队列在其它线程中调用 同步执行 主队…

四数相加Ⅱ-力扣

做这道题想到的解法是,由于该题只统计元组个数,而不需要位置,那我们首先用一个map来统计数组1和数组2两两元素之和出现的个数,然后去遍历数组3和数组4,在map中寻找 0 - c - d 这个键值是否存在(c和d为数组3…

uniApp 创建Android.keystore证书IOS的证书

Android 证书 1、安装JRE环境 可从Oracle官方下载jre安装包:https://www.oracle.com/technetwork/java/javase/downloads/index.html 打开命令行(cmd),输入以下命令: //切换工作目录到f:路径 D: //将jre命令添加到…

2024/5/22 Day36 greedy 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

2024/5/22 Day36 greedy 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果 1005.K次取反后最大化的数组和 题目链接 1005 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这…

Android制作.9图

需求背景:android 启动图变形 开发语言:uni-app,uni-app官网 俗语曰:授人以鱼不如授人以渔 原创地址:Android制作.9图 语雀 一.工具 使用android studio,因为android studio已经集成.9.png制作工具&a…

MYSQL设置字段默认值的函数

目录 前言IFNULLCOALESCE总结 前言 数据库中有些字段可能是null或统计字段也可能是NULL,这些前端拿到数据显示出来是空白,遇到这种情况,有必要将null的字段设置一个默认值。将NULL值的字段设置默认值的函数有IFNULL(expr1,expr2)和COALESCE(…

某勾求职网逆向分析

搜索目标: aHR0cHM6Ly93d3cubGFnb3UuY29tL3duL2pvYnM/cG49MSZweD1kZWZhdWx0JmZyb21TZWFyY2g9dHJ1ZSZrZD0lRTYlOTUlQjAlRTYlOEQlQUUlRTUlODglODYlRTYlOUUlOTA= 抓包分析 请求和返回都是加密的 请求头部也有未知参数 跟栈分析 请求和返回是一个AES加密,加密的KEY是session s…

鸿蒙OS开发:典型页面场景【一次开发,多端部署】(信息应用)案例

信息应用 简介 内容介绍 Mms应用是OpenHarmony中预置的系统应用,主要的功能包含信息查看、发送短信、接收短信、短信送达报告、删除短信等功能。 架构图 目录 /Mms/ ├── doc # 资料 ├── entry │ └── src │…

springboot3项目练习详细步骤(第四部分:文件上传、登录优化、多环境开发)

目录 本地文件上传 接口文档 业务实现 登录优化 SpringBoot集成redis 实现令牌主动失效机制 多环境开发 本地文件上传 接口文档 业务实现 创建FileUploadController类并编写请求方法 RestController public class FileUploadController {PostMapping("/upload&…

Flink 通过 paimon 关联维表,内存降为原来的1/4

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

力扣62 不同路径 Java版本

文章目录 题目描述代码 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少…

C++笔试强训day35

目录 1.奇数位丢弃 2.求和 3.计算字符串的编辑距离 1.奇数位丢弃 链接https://www.nowcoder.com/practice/196141ecd6eb401da3111748d30e9141?tpId128&tqId33775&ru/exam/oj 数据量不大&#xff0c;可以直接进行模拟&#xff1a; #include <iostream> #incl…

06_知识点总结(JS高级)

一、进程与线程 1. 进程(process)&#xff1a;程序的一次执行, 它占有一片独有的内存空间 2. 线程(thread)&#xff1a; 是进程内的一个独立执行单元&#xff0c;CPU的基本调度单元, 是程序执行的一个完整流程 3. 进程与线程 * 应用程序必须运行在某个进程的某个线程上 * 一个…

曲线拟合工具软件(免费)

曲线拟合是数据处理中经常用到的数值方法,本质是使用某一个模型(方程或者方程组)将一系列离散的数据拟合成平滑的曲线或者曲面,数值求解出对应的函数参数,大家可以利用MATLAB的曲线拟合工具箱也可以使用第三方的拟合软件,今天我们介绍Welsim免费的曲线拟合软件 1、MATLA…

手撕C语言题典——返回倒数第 k 个节点(面试题)

前言 依旧力扣&#xff0c;这道题之前有做过类似的题&#xff0c;今天给一个新的思路去做&#xff0c;应对面试时候遇到的奇奇怪怪的问题 面试题 02.02. 返回倒数第 k 个节点 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/kth-node-from-end-of-list-…

动手学深度学习23 LeNet

动手学深度学习23 LeNet 1. LeNet2. 代码3. QA 1. LeNet 两层卷积两层池化两层全连接 卷积就是让每一层shape不断压缩变小【高宽减少】&#xff0c;通道数增多&#xff0c;把特征信息放到不同的通道里面。每一个通道认为是一个模式。然后再做全连接的输入。 2. 代码 impor…

css3 笔记02

目录 01 过渡 02 rotate旋转 03 translate函数 04 真正的3D 05 动画 06 阴影 07 自定义字体库 08 自定义动画库 01 过渡 过渡属性的使用: transition-property:要过渡的css属性名 多个属性用逗号隔开 过渡所有属性就写all transition-duration: 过渡的持续时间 s秒 …