python语言,set和list有什么区别?set和list如何相互转化?

发布时间:2026/11/2 6:30:12

python语言,set和list有什么区别?set和list如何相互转化? 语言, set和list有什么区别? set和list如何相互转化? 作者: 苏南大叔 来源: 程序如此灵动~2022年05月02日 联系我:我们对当前这种情况持有非常正面的看法, 觉得这个世界是非常好的, 而且你也好, 我也好, 大家都不好。因此, 我们希望大家可以去玩一下解压小游戏吧在那些高级编程语言环境下面, 都存在set这种数据类型和list这种数据类型, 而且这两种数据和array数据相比起来也是类似的。实际上来说的话, 这两者之间是存在着区别的。针对不同应用场景这个情况, 是使用set还是使用list, 那都是有所区分的。把set转化成list这个事是怎么做的? 或者反过来, 把list转化成设成set这个事又该怎么操作? 这些内容, 都算是本文主要阐述的那个问题范畴里面的事情了。语言set和list有什么区别set和list如何相互转化图11-1大家好这里是苏南大叔的“程序如此灵动”博客这里讲述苏南大叔和计算机代码的故事。本文讲述在语言中的set和list的区别。测试环境win103.6.8。简要说明依照苏南大叔他本人的那个想法和认知来看。定义如下_set set()_set set([1,2,3])_set set([sunan,is,best])_set {sunan,is,best}_set set(uncle sunan)_set set(1) ## 报错语言是指和这两者之间究竟存在哪些差异呢? 另外, 还要弄清楚这两个东西是怎么互相转换的? 这部分内容可以参考图11-2。set这个函数是可以传一个参数进去的, 或者干脆就不传任何参数。那个参数你可以把它设定成字符串类型, 这种情况下它会被系统按照随机的顺序给打乱然后输出出来, 你也可以把它设定成数组形式。但是呢, 你绝对不能传数字进去, 要是传了数字的话程序就会报错。TypeError: int object is not iterable这个list其实不算复杂, 它跟数组比较像, 具有顺序的特点, 里面的内容不会被打乱。_list []_list [sunan,is,best]添加成员_set.add(s)_list.append(s)大家在这儿得留神, 那set它自己里头有个现成的毛病, 你不管往里面塞啥数据, 只要你新来的那货是它以前没见过的, 它才算认可接纳可是你要是塞个重复的玩意儿进去, 系统可不会给你抛错误啊。这话说的啥意思? 就是说你要把上面那句话去反复跑上好几遍, 那么在那个set容器内部, 最后也就只老老实实待着一个“s”但是在list那边边儿上, 却能堆积出好几个“s”出来。去重对比_set set()_list []for i in aaabbc:_set.add(i)_list.append(i)print(_set,_list)语言set和list有什么区别set和list如何相互转化图11-3删除成员_set {a,b,c,d,e}_list [a,b,c,d,e]_set.remove(a)_list.remove(a)_item_set _set.pop()_item_list _list.pop(2)print(_set,_list)print(_item_set,_item_list)这里需要特别加以说明的是, .pop()这个操作它属于那种非常典型的、专门用来处理堆栈的相关操作。语言层面来说, set和list这两者到底有什么区别呢? 接着我们来看看set与list之间是如何进行相互转换的。图11-4包含判断这俩种情形都能用in这个操作用来做个存在与否的判断, 可是大家得睁大眼睛瞧仔细了, int这个玩意儿和其他的是有差别的。_set {9,5,2,7}_list [9,5,2,7]print (7 in _set)print (7 in _set)print (a in _list)语言set和list有什么区别set和list如何相互转化图11-5修改成员因为序列集合是无序这个原因, 所以根本就没有索引概念在里头, 也因此没法通过角标的方式去修改里面的成员。然而它生来就有去重的本领, 所以呢, 可以先做移除掉原来那个旧的值这个操作, 然后再做添加到集合里边的操作这样一折腾之后, 效果其实就等于把那个成员给改了。_set {a,b,c}_dict {b:e}_target bif (_target in _set) and (_dict[_target] not in _set):_set.remove(_target)_set.add(_dict[_target])print(_set)else:print(修改失败)语言set和list有什么区别set和list如何相互转化图11-6_list[0] sunan语言set和list有什么区别set和list如何相互转化图11-7相互转化关于list和set这两者, 它们是能够完成相互之间的转化操作的。但是因为set这个东西, 它具有那种天然就把重复数据去掉的特点。所以在进行这种相互转化的时候, 很有可能会碰到数据丢失这样一种情况。_list [a,a,b]_set set(_list)_list list(_set)语言set和list有什么区别set和list如何相互转化图11-8排序问题这个所谓的列表它能够被进行排序操作, 而那个名为集合的东西它在本质上就是杂乱无章的状态, 所以它是没有办法来执行排序任务的, 如果你执意要对它进行排序的话, 那么它就会变成那种可以被排列的列表形式。_list [9,5,2,7]# _list2 _list.sort() #没有返回值_list.sort()print(_list)_set set(_list)# _set.sort() # 报错 AttributeError: set object has no attribute sort_list3 sorted(_set) # 有返回值print(_set,type(_list3),_list3)语言set和list有什么区别set和list如何相互转化图11-9成员遍历这两个家伙, 都是能够让大伙儿拿那个 for..in 这个循环操作给输出出来的。下面这一段代码, 就是专门用来拿去测试的那个代码部分。_set {9,5,2,7}_list [9,5,2,7]for i in _set:print(i)for i in _list:print(i)关于语言这一点儿事情来说, 我们要弄明白的是, set和list这两个东西之间到底存在什么样的区别? 另外, 人们还经常想知道的问题就是, set这种东西和list这种东西之间要怎样才能达到相互之间进行转化的目的? 请看图11-10。合并成字符串里面那个字符串通过join进行合并操作, 它是属于极其、十分、非常特殊的一种情况, 对此我们感到非常强烈的鄙视因为它和其他的那些高级编程语言完全是处于对着干的状态。# _set {9,5,2,7}# _list [9,5,2,7]_set {sunan,is,best}_list [sunan,is,best]_str1 .join(_list) #TypeError: sequence item 0: expected str instance, int found_str2 .join(_set)print(_str1)print(_str2)_set.add(1)_list.append(1)_str1 .join(%s %id for id in _set)_str2 .join(%s %id for id in _list)print(_str1)print(_str2)另外, 当集合或者是列表里出现了数字类型的数据的时候, 它就会直接抛出错误消息, 这种状态简直就是像一位非常娇气的小公主一样。TypeError: sequence item 0: expected str instance, int found解决方案就是 .join(%s %id for id in _set)语言里面的 set 和 list 有什么区别呢, set 和 list 怎么进行相互转化, 这个具体内容请参考图 11-11。从总体的情况来看, 大家都会发现这个关于join的测试结果是让人感到非常意外的, 这种情况可以参考相关的文献来进行综述。本文从各个不同的方面对常见的集合和列表的用法进行了比较, 因为本文是以Java作为示例来进行展开阐述, 所以在其它类型的编程语言当中, 具体的使用方式和逻辑结构会不会出现一定的不同或者变化这样的情况目前还属于未知的状态, 这一点还需要大家进一步地讨论和研究。不过可以确定的是, 这篇文章的内容对于其他那些高级编程语言的开发者来说, 也应该具备相应的参考价值和借鉴意义。如果这篇文章确实能够对您有所帮助, 又或者在某种程度上为您的时间做出了一点节约, 那么还请不要吝啬您的奖励, 不妨通过打赏的方式为我准备一瓶饮料, 以便借此机会来进一步拉近你我彼此之间的朋友关系。本博客这个地方是不欢迎大家进行各种各样的镜像采集的行为的, 请你一定要尊重一下我们这里写的原创的文章内容, 如果你要进行转载的话请务必把作者的那个链接给保留下去。这是一个福利活动, 腾讯云最近推出的那个非常火的活动, 购买他们的那个一核二千兆内存的云服务器服务, 第一年只需要花费五十元钱。源代码、本文里面出现的代码片段, 还有相关的那些软件, 请点击这里来获取更多的具体信息。【绝密】秘籍文章入口仅传授于有缘之人
延伸阅读

更多相关文章

2026/11/2 6:30:12

python实现断点调试的方法

为了实现断点这个调试方法, 我们得采取一些措施。数据的更新时间是在二零二三年二月二十二日的十五点十六分二十秒, 而作者的署名是橙子味冰可乐。这篇文章的核心主题在于讨论如何实现断点调试的方法, 在文章的具体内容方面, 它是通过示例代码来进行相关介绍工作的, 且介绍的详…

2026/11/2 6:25:09

哔哩下载姬 downkyi 关停之后:发生了什么,以及你该怎么做

哔哩下载姬 downkyi 关停之后:发生了什么,以及你该怎么做 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、…

2026/11/2 7:35:16

Matlab IEEE14节点潮流计算:N-R与P-Q双算法实现与对比

简介:这份文档是《基于Matlab的IEEE14节点潮流计算程序》的配套说明书,面向电力系统稳态分析课程的学习者与大作业需求者,帮助理解并复现牛顿-拉夫逊法与P-Q分解法两种潮流算法的实现与比较。全文按论文格式排版,含目录、摘要、正…

2026/11/2 7:35:16

epoll_wait信号中断处理与竞态条件解决方案

1. 信号中断对epoll_wait的影响机制当epoll_wait系统调用被信号中断时,会返回-1并设置errno为EINTR(错误号4)。这种情况通常发生在以下场景:进程设置了信号处理函数(如SIGALRM定时器信号),当epo…

2026/11/2 7:35:16

Matlab实现IEEE14节点潮流计算:N-R与P-Q法源码详解与避坑指南

简介:这份文档是《基于Matlab的IEEE14节点潮流计算程序》的配套说明书,面向电力系统稳态分析课程的学习者与大作业需求者,帮助理解并复现牛顿-拉夫逊法与P-Q分解法两种潮流算法的实现与比较。文档以论文格式排版,含目录、摘要、正…

2026/11/2 7:35:16

NAS环境下的Typora替代方案:Haptic Markdown编辑器详解

1. 为什么我们需要Typora的替代品?作为一名长期使用Markdown写作的技术博主,我深刻理解Typora在Markdown编辑器领域的标杆地位。这款所见即所得的编辑器以其简洁的界面和流畅的写作体验赢得了大量用户的青睐。然而,随着Typora从免费转向付费模…

2026/11/2 7:35:16

OpenFOAM风工程核心设计:方程表达、分层架构与并行化

简介:这份PDF面向刚接触开源CFD工具的研究生、工程师与科研人员,系统梳理OpenFOAM的来龙去脉与核心能力,帮助读者在动手建模前建立对软件架构与适用边界的整体认识。内容涵盖其源自帝国理工学院Gosman小组、经Charlie Hill博士论文与Henry We…

2026/11/2 7:30:15

2025地级市驾车出行矩阵:数据生成与应用解析

1. 项目背景与数据价值2025年我国地级市间驾车出行距离和出行时间矩阵数据是一套具有重要战略价值的交通地理信息数据集。这类数据通常以NN矩阵形式呈现(N为全国地级市数量),矩阵中的每个单元格记录了两个城市之间的驾车最短路径距离&#xf…

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业级SPI隔离设计:硬件抗扰与信号完整性实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

PLFM_RADAR:主动探测数据通道,构建低误报的数据感知系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业SPI隔离设计:MAX14431与STM32F746硬件抗干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑