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

发布时间:2026/7/17 20:34:06
列表、字符串、元组、集合、字典等的联系区别及使用方法以及解包在其中的使用 (1)列表篇 1.综合概念上的比较列表可变类型可以储存不同类型的元素元素有序索引在其中有意义可以重复元素可以修改元组不可变类型和列表类似但是一旦定义完成不可修改只能进行查询操作字符串不可变类型不可变性有序性可迭代性可以使用循环语句将其中的元素输出集合可变类型无序的不可以使用索引访问不可重复的可以修改的有自动去重功能但是集合中的元素本身必须是不可变类型如数字字符串元组字典可变类型key:value键key)不能重复不能为可变类型如列表、集合、字典等如果键重复后面自动覆盖前面的值值value)可以是任何类型的数据可变类型和不可变类型的区别可变类型如列表、集合、字典改内容地址不变如下图最后输出的地址是一样的不可变类型如元组、字符串改内容地址必变如下图最后输出的地址不一样可以使用type来查看数据类型2.每一种的详细用法以及案例说明1列表list)用方括号括起形如[ ],比如[1,a,3.14,True,5]就是一个列表(这里的字母需要加引号不然电脑认为其为变量会报错(True和False属于布尔类型附加索引的基本概念1a3.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()相当于在原列表的基础上排序之后返回一个新列表,有返回值asorted(t)reverse()反转列表元素t.reverse()很明显的是在上面的主要使用方法中只有sorted最后使用方法是asorted(t)即只有它有返回值其余的都是直接修改列表了如果输入asort(t)是错误的a没有返回值赋值None现在给出一些案例1将用户输入的十个数字储存到一个列表中并将列表数字进行排序输出其中最小值这里就最开始的排序给定两种方法以及分析第一种是比较标准的用的是在列表尾部添加元素的方式第二种是不怎么标准的因为其输出的列表的组成元素都是字符串其比较的方法是ASCII码值比较法所以不太规范请注意第二种里面写的aanum是基于两种都是同种类型的情况下才可以这么合并最小值就是排序之后的零索引所以直接printa[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,cs就是解包操作相当于把右边拆开里面的东西挨个分给左边的变量*在解包里的作用是打包剩余零散元素当左边变量小于右边元素的时候举个例子s[1,2,3,4,5]a,b,*cs其输出结果会是a1,b2,c[3,4,5] 同时这里也要注意没有*的变量直接拿值有*的变量拿列表元组里面也是一样的并且还有一点很重要的就是哪怕只剩下1个或者0个元素带*的永远是列表如下图所示仅代表个人观点欢迎友善批评指正