集合的创建

news2024/11/26 6:57:43

自学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.coloradmin.cn/o/1708946.html

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

相关文章

Vue3实战笔记(34)—完美的菜单组件封装

文章目录 前言多层菜单封装总结 前言 之前简单的封装了一下菜单组件,数据都是写死的,多层嵌套没有支持,学完了组件传值,计算属性就可以继续完善了。 多层菜单封装 先看下数据结构: {"id":"1",&q…

K210 数字识别 笔记

一、烧写固件 连接k210开发板,点开烧录固件工具,选中固件,并下载 二、模型训练 网站:MaixHub 1、上传文件 2、开始标记数据 添加9个标签,命名为1~9,按键盘w开始标记,键盘D可以下一张图片&…

Redis学习篇2:Redis在Spring中的应用

本文继上文开始讲述了Redis在IDEA中如何应用以及集成进入spring开发环境,以及如何使用Redis客户端。上一个文章:Redis学习篇1:初识Redishttps://blog.csdn.net/jialuosi/article/details/139057088 一、Redis在java中的客户端 二、SpringDat…

Spring Boot中@Value加载配置的替代者:@ConfigurationProperties

Value注解Spring Boot开发者都已经熟悉了,通过该注解,我们可以快速的把配置信息加载到Spring的Bean中。 例如:在application.yml中添加了一个配置如下: 我想在service中获取name,通过value注解方式实现,代…

【JVM精通之路】垃圾回收-三色标记算法

首先预期你已经基本了解垃圾回收的相关知识,包括新生代垃圾回收器,老年代垃圾回收器,以及他们的算法,可达性分析等等。 先想象一个场景 最开始黑色节点是GC-Roots的根节点,这些对象有这样的特点因此被选为垃圾回收的根…

你什么时候感觉学明白Java了?

学是学不明白Java的,要学明白Java,一定只能在工作以后。 1 在学习阶段,哪怕是借鉴别人的学习路线,其实依然会学很多不必要的技能,比如jsp,swing,或者多线程,或者设计模式。 2 或者…

你对仲裁裁决不服怎么办?我教你四个狠招!

你对仲裁裁决不服怎么办?我教你四个狠招! 这个标题是什么意思呢?也就是说,当你(或用人单位)向劳动仲裁委提出仲裁申请后,但劳动仲裁结果没有维护你的权益,或者你不满意,…

【Nginx <三>⭐️⭐️⭐️】Nginx 负载均衡使用

目录 👋前言 👀一、 负载均衡概述 🌱二、项目模拟 2.1 环境准备 2.2 启动多个服务器 2.3 配置 Nginx 2.4 测试配置 💞️三、章末 👋前言 小伙伴们大家好,前不久开始学习了 Nginx 的使用,在…

如何克隆非默认分支

直接git clone下来的我们知道是默认分支,那如何克隆其他分支呢: 比如这个,我们想克隆AdvNet。 我们可以在本地文件夹打开Git Bash 依次输入: git clone --branch AdvNet https://github.com/wgcban/SemiCD.git cd SemiCD git b…

Monaco-Editor在Vue中使用(实现代码编辑与diff代码比较)--类似vscode代码编辑器

Monaco-Editor 是一个由 Microsoft 开发的 Web 代码编辑器,它是 Visual Studio Code 的浏览器版本。在 Vue 项目中集成 Monaco-Editor 可以提供代码编辑、语法高亮、智能提示等功能 效果: 1、安装使用,最好安装指定版本,我是 vue…

力扣算法之1070. 产品销售分析 III

力扣传送门 题解 选出每个售出过的产品 第一年 销售的 产品 id、年份、数量 和 价格,很明显就是个排序问题 我的解 SELECT product_id,year as first_year,quantity,price FROM ( SELECT sale_id,RANK() OVER(PARTITION BY product_id ORDER BY [year] asc ) A…

Matlab-熵权法

文章目录 熵权法一、模型简介二、例题1. 数据标准化2.指标的熵值和变异程度3.权重与评分4.代码实现 熵权法 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多…

Docker安装Nginx 并实现通过nginx部署静态网址

Docker镜像就是一个只读的模板,可以用来创建Docker容器。 例如:一个镜像可以包含一个完整的centos操作系统环境,里面仅安装了mysql、nginx等或用户需要的其他应用程序。 Docker提供了一个非常简单的机制来创建镜像或者更新现有的镜像&#…

OpenHarmony Camera源码分析

一、简介 当前,开源在科技进步和产业发展中发挥着越来越重要的作用,OpenAtom OpenHarmony(简称“OpenHarmony”)赋予了开发者孕育创新的种子,也为数字化产业发展开辟了一片土壤。深开鸿是开源的坚定践行者&#xff0c…

开源VS闭源:谁将引领AI大模型的新时代?

一、引言 随着人工智能技术的飞速发展,AI大模型已成为推动这一浪潮的核心动力。在AI大模型的发展过程中,开源与闭源两种不同的发展路径一直备受关注。本文将深入探讨这两种路径的优劣势,分析它们对AI大模型发展的影响,并预测谁将…

Spring中RestTemplate用法

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 RestTemplate 是从…

redis基本数据结构与应用

文章目录 概要String结构Hash结构List结构Set结构Zset结构bitmap位图类型geo地理位置类型其他常用命令 概要 redis常用的5种不同数据结构类型之间的映射如下: 结构类型结构存储的值结构的读写能力STRING可以是字符串、整数或者浮点数key-value形式;对整…

Python筑基之旅-集合

目录 一、集合 1、集合的定义 2、集合的语法 3、获取集合的属性和方法 4、获取集合的帮助信息 5、集合的用法 5-1、创建集合 5-1-1、创建空集合(必须使用set()函数) 5-1-2、使用花括号创建集合(包含元素) 5-1-3、使用set()函数创建集合(包含元素) 5-1-4、尝试使用花括…

鸿蒙OS开发:【一次开发,多端部署】(app市场首页)项目

一多应用市场首页 介绍 本示例展示了应用市场首页,页面中包括Tab栏、运营横幅、精品应用、精品游戏等。 本示例使用一次开发多端部署中介绍的自适应布局能力和响应式布局能力进行多设备(或多窗口尺寸)适配,保证应用在不同设备或…

【pyspark速成专家】11_Spark性能调优方法2

目录 ​编辑 二,Spark任务UI监控 三,Spark调优案例 二,Spark任务UI监控 Spark任务启动后,可以在浏览器中输入 http://localhost:4040/ 进入到spark web UI 监控界面。 该界面中可以从多个维度以直观的方式非常细粒度地查看Spa…