41. set()函数:将可迭代对象转换为可变集合

news2024/11/13 10:07:55

41. set()函数:将可迭代对象转换为可变集合

文章目录

  • 41. set()函数:将可迭代对象转换为可变集合
    • 1. set( )函数的作用
    • 2. set( )函数的语法
    • 3. set函数创建空集合
    • 4. set函数的参数只能是可迭代对象
      • 4.1 将字符串转换为集合
      • 4.2 set( )函数的参数不能为整数
      • 4.3 set( )函数的参数不能为浮点数
      • 4.4 set( )函数的参数不能为布尔类型
      • 4.5 将列表转换为集合
      • 4.6 将元组转换为集合
      • 4.7 将字典转换为集合
      • 4.8 将集合转换为集合
      • 4.9 将range对象转换为集合
    • 5. set()函数的参数只能有一个
    • 6. 总结

1. set( )函数的作用

【作用】

set( )函数用于将可迭代对象转换为一个无序的不重复元素的可变集合。

【返回值】

返回的集合是可以修改的,我们可以对集合元素进行添加或删除等,也可以对集合进行交集、并集、差集等操作。

2. set( )函数的语法

set( )函数由3部分组成:

  1. 函数名:set

  2. 英文圆括号:( )

  3. set函数的参数:要转换成集合的可迭代对象

在这里插入图片描述

3. set函数创建空集合

空列表、空元组、空字典的创建都有两种方法:符号法和函数法。

字典和集合都用英文大括号{ }表示。

英文大括号{ }只能创建空字典,不能创建空集合。

空集合只能用set( )函数创建。

【方法1:符号法】

  1. 用英文中括号[ ]创建空列表。

  2. 用英文圆括号( )创建空元组。

  3. 用英文大括号{ }创建空字典。

# 新建空列表
list_0 = [ ]

# 新建空元组
tuple_0 = ( )

# 新建空字典
dict_0 = { }

# type函数查看数据类型
print(type(list_0))
print(type(tuple_0))
print(type(dict_0))

【终端输出】

<class 'list'>
<class 'tuple'>
<class 'dict'>

【方法2:函数法】

  1. 用list函数创建空列表。

  2. 用tuple函数创建空元组。

  3. 用dict函数创建空字典。

  4. 用set函数创建空集合。

# list函数不传入参数,创建一个空列表
list_1 = list ( )

# tuple函数不传入参数,创建一个空元组
tuple_1 = tuple ( )

# dict函数不传入参数,创建一个空字典
dict_1= dict ( )

# set函数不传入参数,创建一个空集合
set_1= set ( )

# type函数查看数据类型
print(type(list_1))
print(type(tuple_1))
print(type(dict_1))
print(type(set_1))

【终端输出】

<class 'list'>
<class 'tuple'>
<class 'dict'>
<class 'set'>

4. set函数的参数只能是可迭代对象

4.1 将字符串转换为集合

set_1 = set ('happy')
print('将字符串转换为集合:',set_1)

# type函数查看数据类型
print(type(set_1))

【终端输出】

将字符串转换为集合: {'h', 'p', 'a', 'y'}
<class 'set'>

上述代码用set()函数将字符串'happy'转换为集合。

集合的元素是不能重复的,因此p字符只保留1个。

转换后的集合含有4个元素。

4.2 set( )函数的参数不能为整数

set_2 = set (1000)
print('将整数转换为集合:',set_2)

【终端输出】

TypeError: 'int' object is not iterable

set函数的参数为整数,程序报错。

‘int’ object is not iterable:“int”对象不可迭代。

4.3 set( )函数的参数不能为浮点数

set_3 = set (0.79)
print('将整数转换为集合:',set_3)

【终端输出】

TypeError: 'float' object is not iterable

set函数的参数为浮点数,程序报错。

‘float’ object is not iterable:“float”对象不可迭代。

4.4 set( )函数的参数不能为布尔类型

set_4= set (True)
print('将整数转换为集合:',set_4)

【终端输出】

TypeError: 'bool' object is not iterable

set函数的参数为布尔值,程序报错。

‘bool’ object is not iterable:“bool”对象不可迭代。

4.5 将列表转换为集合

set_5 = set (['张三','李四','王五'])         
print(' 将列表转换为集合:',set_5)    

# type函数查看数据类型
print(type(set_5))      

【终端输出】

 将列表转换为集合: {'李四', '张三', '王五'}
<class 'set'>

集合是无序的,转换后集合的顺序可能会有所变化。

4.6 将元组转换为集合

set_6 = set (('张三','李四','王五'))     
print(' 将元组转换为集合:',set_6)      

# type函数查看数据类型
print(type(set_6))

【终端输出】

 将元组转换为集合: {'李四', '张三', '王五'}
<class 'set'>

4.7 将字典转换为集合

# 字典也用{}表示
dict_1 = {
    'name':'andy',
    'age':'20',
    'sex':'female'
}
set_7 =set(dict_1)
print('将字典转换为集合',set_7)

# type函数查看数据类型
print(type(set_7))

【终端输出】

将字典转换为集合 {'sex', 'name', 'age'}
<class 'set'>

【温馨提示】

set()函数仅作用于字典的键(key),输出的集合只包含字典的键(key)

字典的键:‘name’, ‘age’, ‘sex’

字典的值:‘andy’, ‘20’, ‘female’

4.8 将集合转换为集合

set_8 = set ({'张三','李四','王五'})    
print(' 将集合转换为集合:',set_8)      

# type函数查看数据类型
print(type(set_8))

【终端输出】

 将集合转换为集合: {'李四', '张三', '王五'}
<class 'set'>

4.9 将range对象转换为集合

set_9 = set (range(9))
print(' 将range对象转换为集合:',set_9)

# type函数查看数据类型
print(type(set_9))

【终端输出】

 将range对象转换为集合: {0, 1, 2, 3, 4, 5, 6, 7, 8}
<class 'set'>

5. set()函数的参数只能有一个

set_1 = set ('人数苦短','我学Python')
print('多个字符串不能转换为集合:',set_1)

【终端输出】

TypeError: set expected at most 1 argument, got 2

上述set函数里有2个参数。

参数1是字符串’人数苦短’。

参数2是’我学Python’。

set函数只能有1个参数,有多个参数时,程序会报错。

set expected at most 1 argument, got 2:集合预期最多1个参数,但得到2个。

6. 总结

在这里插入图片描述

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

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

相关文章

MIT 6.S081 Operating System Lecture8 (非常随意的笔记)

系列文章目录 文章目录系列文章目录Page FaultCOPY ON WRITEPage Fault eager allocation 通常&#xff0c;因为应用程序无法非常准确地估计自己要增加的内存有多少&#xff0c;所以通常申请的内存会比真实要使用的内存要多。 在XV6中&#xff0c;sbrk的实现默认是eager alloc…

基于粒子群算法优化的lssvm回归预测-附代码

基于粒子群算法优化的lssvm回归预测 - 附代码 文章目录基于粒子群算法优化的lssvm回归预测 - 附代码1.数据集2.lssvm模型3.基于粒子群算法优化的LSSVM4.测试结果5.Matlab代码摘要&#xff1a;为了提高最小二乘支持向量机&#xff08;lssvm&#xff09;的回归预测准确率&#xf…

【C++】stack/queue/list

文章目录注意事项1 emplace 与 push 的区别一、stack&#xff08;栈&#xff09;&#xff08;先进后出、【头部插入、删除】、不许遍历&#xff09;1 基本概念&#xff08;栈是自顶向下(top在下)&#xff0c;堆是向上&#xff09;2 stack 常用接口&#xff08;构造函数、赋值操…

[蓝牙 Mesh Zephyr]-[005]-Key

[蓝牙 Mesh & Zephyr]-[005]-Key 1. Keys Mesh Profile specification 定义了 2 种key&#xff1a;application keys &#xff08;AppKey&#xff09;和 network keys&#xff08;NetKey&#xff09;。AppKeys 用于保护 upper transport layer 的通信安全&#xff0c;Net…

如何手动添加NLTK data

一、问题描述 Python的自然语言处理库NLTK在安装之后需要下载一些data文件才能使用。官方比较推荐的方式是直接运行下载data的代码&#xff1a; import nltk nltk.download(punkt) 但是实际操作之后发现由于网络原因无法下载成功。 除了运行代码之外&#xff0c;官方还推荐…

分布式队列celery学习

说明&#xff1a;本文内容来自《python自动化运维快速入门》学习 一、介绍 Celery是由纯Python编写的&#xff0c;但协议可以用任何语言实现。目前&#xff0c;已有Ruby实现的RCelery、Node.js实现的node-celery及一个PHP客户端&#xff0c;语言互通也可以通过using webhooks…

[附源码]JAVA毕业设计客户台账管理(系统+LW)

[附源码]JAVA毕业设计客户台账管理&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&…

Activiti7工作流(二)

流程定义相关 流程定义查询 查询流程相关信息&#xff0c;包含流程定义&#xff0c;流程部署&#xff0c;流程定义版本 Test public void testDefinitionQuery(){//创建ProcessEngine对象ProcessEngine processEngine ProcessEngines.getDefaultProcessEngine();//获取仓库…

自动识别验证码实现系统自动登录(可扩展实现无人自动化操作,如领取各个平台的优惠券),不依赖第三方可以支持离线识别处理,附源码可直接运行

自动识别验证码实现系统自动登录(可扩展实现无人自动化操作,如领取各个平台的优惠券),不依赖第三方可以支持离线识别处理,附源码可直接运行。 实现过程: 1、只要是图片验证码都支持识别; 2、通过百度API实现验证码识别;(依赖第三方,且需要连接互联网,内网不可用,实…

7-FreeRTOS软件定时器

1- 简介 1.1 软件定时器简述 软件定时器就是允许函数设置一定的等待时间&#xff0c;然后执行。定时器执行的函数被称为定时器的回调函数。定时器从启动到执行回调函数之间的时间称为定时器的周期。定时器的回调函数在定时器的时间到达时执行。 软件定时器要先创建才能使用。…

实战Docker未授权访问提权

1、fofa关键字 port“2375” && body“page not found” 2、docker -H tcp://ip:port 可查看到当前所有的实例 3、docker -H tcp://ip:port pull alpine 4、docker -H tcp://ip:port run -it --privileged alpine bin/sh 5、fdisk -l 查看其分区结构 6、创建一个…

Java安全-CC1

CC1 这里用的是组长的链子和yso好像不太一样&#xff0c;不过大体上都是差不多的。后半条的链子都是一样的&#xff0c;而且这条更短更易理解。yso的CC1过段时间再看一下。 环境 Maven依赖&#xff1a; <dependencies><dependency><groupId>commons-colle…

十四、使用 Vue Router 开发单页应用(3)

本章概要 命名路由命名视图编程式导航传递 prop 到路由组件HTML 5 history 模式 14.5 命名路由 有时通过一个名称来标识路由会更方便&#xff0c;特别是在链接到路由&#xff0c;或者执行导航时。可以在创建 Router 实例时&#xff0c;在routes 选项中为路由设置名称。 修改…

用Unity实现FXAA

用Unity实现FXAAFXAA是现代的常用抗锯齿手段之一&#xff0c;这次我们来在Unity中从零开始实现它。 首先我们来看一个测试场景&#xff0c;我们在Game视角下将scale拉到2x&#xff1a; 可以看到画面的锯齿比较严重&#xff0c;下面我们将一步一步地实现FXAA&#xff0c;消除锯…

BDD - SpecFlow ExternalData Plugin 导入外部测试数据

BDD - SpecFlow ExternalData Plugin 导入外部测试数据引言SpecFlow ExternalData 插件支持的数据源Tags实践创建一个 Class Libary Project添加 NuGet Packages添加测试数据源文件CSV 文件Excel 文件添加 Feature 文件实现 Step Definition执行Scenario 导入测试数据源Scenari…

深入URP之Shader篇4: Depth Only Pass

Depth only pass unlit shader中包含了一个Depth Only Pass&#xff0c;这个pass的代码在Packages\com.unity.render-pipelines.universal\Shaders\DepthOnlyPass.hlsl中。这是一个公共pass&#xff0c;几乎所有的URP shader都会包含这个pass。本篇说一说这个pass的作用以及实…

Ubuntu映射到Windows网络驱动器

将虚拟机Ubuntu映射到Windows网络驱动器中&#xff0c;我们需要Ubuntu的网络和主机网络处于同一网段下&#xff0c;然后使Ubuntu具备共享文件功能&#xff0c;最后在windows下添加网络地址。 将Ubuntu设置和主机同一网段 查看主机网络信息 在虚拟机中 选择编辑-- 虚拟网络编…

Java的字符串String

文章目录什么是字符串String类的声明为什么我们的String是不可变的为什么String类用final修饰String的创建字符串比较相等关于Java中的比较关于字符串不同赋值操作对应的内存分配那对象如何进行比较内容字符串常量池StringTalbe的位置字符串常见的操作拼接操作获得字符串的子串…

事件驱动的微服务、CQRS、SAGA、Axon、Spring Boot

事件驱动的微服务、CQRS、SAGA、Axon、Spring Boot 学习构建分布式事件驱动的微服务、CQRS、事件溯源、SAGA、事务 课程英文名&#xff1a;Event-Driven Microservices, CQRS, SAGA, Axon, Spring Boot 此视频教程共10.0小时&#xff0c;中英双语字幕&#xff0c;画质清晰无…

一个带有楼中楼的评论系统数据库设置思路

前言 有个需求&#xff0c;需要实现百度贴吧那样能评论帖子中某一楼的评论里的评论 分析 说起来有点拗口&#xff0c;其实这个评论系统分为4个部分&#xff1a; 主题&#xff08;楼主发布的帖子&#xff09;直接返回楼主的评论&#xff08;从帖&#xff09;&#xff1a;直接…