尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

列表、字符串、元组、集合、字典等的联系区别及使用方法以及解包在其中的使用 (1)列表篇

列表、字符串、元组、集合、字典等的联系区别及使用方法以及解包在其中的使用 (1)列表篇
📅 发布时间:2026/7/17 20:39:26

1.综合概念上的比较

列表

(可变类型)

可以储存不同类型的元素

元素有序(索引在其中有意义),可以重复,元素可以修改

元组

(不可变类型)

和列表类似,但是一旦定义完成,不可修改,只能进行查询操作

字符串

(不可变类型)

不可变性,有序性,可迭代性(可以使用循环语句将其中的元素输出)

集合

(可变类型)

无序的(不可以使用索引访问),不可重复的,可以修改的(有自动去重功能)

但是集合中的元素本身必须是不可变类型(如数字,字符串,元组)

字典

(可变类型)

key:value

键(key)不能重复,不能为可变类型,如列表、集合、字典等;如果键重复,后面自动覆盖前面的值

值(value)可以是任何类型的数据

可变类型和不可变类型的区别;

可变类型(如列表、集合、字典):改内容,地址不变(如下图,最后输出的地址是一样的)

不可变类型(如元组、字符串):改内容,地址必变(如下图,最后输出的地址不一样)

可以使用type()来查看数据类型

2.每一种的详细用法以及案例说明

(1)列表(list)

用方括号括起,形如[ ],比如[1,'a',3.14,True,5]就是一个列表(这里的字母需要加引号,不然电脑认为其为变量会报错)(True和False属于布尔类型)

附加:索引的基本概念

1'a'3.14True5
正向索引01234
逆向索引-5-4-3-2-1

正向索引以左边第一个为索引0,逆向索引以右边第一个为索引-1

操作1:修改

使用列表名[索引]=新的值即可

比如t=[1,'a',3.14,True,5],现在要将3.14改为3.1415

因为3.14的正索引是2,逆向索引是-3,所以有这两种,其结果相同

如果索引不存在会直接报错

操作2:删除

使用del 列表名[索引]即可

比如上面的t=[1,'a',3.14,True,5],删除3.14

操作3:切片

主要结构:列表名【开始索引;结束索引;步长】

步长通常默认为1,实际上可正可负

最后切片出的索引采取前闭后开的原则

比如t=[1,'a',3.14,True,5],若s[1;3;1]则只包括索引1和索引2,索引3不取

t[1;3]是被允许的,此意是步长取默认步长1,但是第一个分号不能省略

操作4:几种主要的使用方法(t是列表名)

apppend()在列表尾部添加元素t.append()
insert()在指定索引前插入该元素t.insert(索引,元素)
remove()移除列表中第一个匹配到的值t.remove()
pop()删除列表中指定索引位的元素(如果未指定,删最后一个)t.pop()
sort()

对列表进行排序(默认从小到大)(但是一定要类型一致)

如果有相同的元素,相对顺序得到保留

比如有两个a,一个索引2一个索引5,排序之后索引2的a还是排在前面

t.sort()
sorted()相当于在原列表的基础上排序之后返回一个新列表,有返回值a=sorted(t)
reverse()反转列表元素t.reverse()

很明显的是在上面的主要使用方法中,只有sorted最后使用方法是a=sorted(t),即只有它有返回值,其余的都是直接修改列表了

如果输入a=sort(t)是错误的,a没有返回值,赋值None

现在给出一些案例

(1)将用户输入的十个数字储存到一个列表中,并将列表数字进行排序,输出其中最小值

这里就最开始的排序给定两种方法以及分析

第一种是比较标准的,用的是在列表尾部添加元素的方式

第二种是不怎么标准的,因为其输出的列表的组成元素都是字符串,其比较的方法是ASCII码值比较法,所以不太规范,请注意,第二种里面写的a=a+num是基于两种都是同种类型的情况下才可以这么合并

最小值就是排序之后的零索引,所以直接print(a[0])即可得到最小值

(2)合并两个列表中的元素,并且对合并结果进行去重处理

a=['a',2,3,False,5,7,'b',3.14]

b=[2,3,True,'b',3.1415,8,6]

这两种逻辑是一样的,只有一个语句不同(一个是列表的合并,一个是列表的解包)

去重的逻辑:对于a中的每一个元素,如果它不在b里,就把它添加到新建的空列表d中,所以循环结束之后d里面都是a中有b中没有的元素,在最后的时候把d和b合并,就是去重的结果

组包和解包

现在讲讲里面涉及的解包和组包思想

解包:将列表这一类容器解开成一个个独立的元素

组包:把多个值合并到一个容器

例如s=[1,2,3]

a,b,c=s就是解包操作,相当于把右边拆开,里面的东西挨个分给左边的变量

*在解包里的作用是:打包剩余零散元素(当左边变量小于右边元素的时候)

举个例子:s=[1,2,3,4,5]

a,b,*c=s

其输出结果会是a=1,b=2,c=[3,4,5] 同时这里也要注意:没有*的变量直接拿值,有*的变量拿列表(元组里面也是一样的)

并且还有一点很重要的就是哪怕只剩下1个或者0个元素,带*的永远是列表

如下图所示

仅代表个人观点,欢迎友善批评指正

相关新闻

  • 2026年雅思机考线上机构还原度深度横评 - 资讯报道
  • Windows 11 LTSC虚拟机优化配置全指南
  • 宇舶中国官方售后服务中心|服务热线及完整维修地址权威信息公示(2026年7月更新) - 亨得利官方服务中心

最新新闻

  • PyTorch实现MNIST手写数字识别:CNN实战教程
  • 无锡宜兴 2026 年 7 月外墙厨房车库防水 宜兴正规漏水检测维修商家 - 苏易修缮
  • 2026年7月最新济南万国官方售后服务网点地址及客服电话一览 - 万国中国官方服务中心
  • Windows安装Linux虚拟机全流程与优化指南
  • 使用js-audio-recorder实现Web录音功能全解析
  • 从录音→纪要→待办→飞书/钉钉自动同步:Claude+Zapier零代码集成全链路(实测延迟<8.3秒,附拓扑图)

日新闻

  • 佛山青少年训练营推荐:军博营地实力顶尖 - 秋山寄远
  • 如何快速上手PvZ2 Gardendless:免费Web版植物大战僵尸2完整指南
  • jiuwen-deepsearch核心功能详解:规划-检索-反思三合一智能工作流

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号