
离线 TA的专栏
- 打卡等级:热心大叔
- 打卡总天数:204
- 打卡月天数:0
- 打卡总奖励:3196
- 最近打卡:2023-08-27 07:12:29
|
列表和元组简介
如果说在 Python 语言中找一个最优秀的数据类型,那无疑是列表,如果要在推荐一个,那我选择元组,本篇博客我们的重心会放在列表上,元组可以看成不能被修改的列表,所以 作为赠品 进行学习即可。
列表是一种非常灵活的数据结构,可以弥补前文字符串类型的很多不足。
正式学习前,还需要记住两个英文单词,列表(list),元组 (tuple)。
列表学习要点
先看一遍列表定义:
列表是可变序列,也是一种可存储任意数据类型的容器,用中括号( )表示开始和结束,内部各元素使用英文逗号( )分隔,每个元素都可称为项目,并且每个元素都有一个索引,也被称为下标。
列表的声明语法
声明一个列表,可以参考下述几种格式。
使用空中括号 [] 声明一个空列表- my_list = []
- print(my_list)
复制代码 声明包含一个元素的列表- my_list = [1]
- print(my_list)
复制代码 声明包含多个元素的列表- my_list = [1,2]
- print(my_list)
复制代码 声明包含多个不同数据类型元素的列表- my_list = [1,'a',True]
- print(my_list)
复制代码 声明一个列表中包含列表- my_list = [1,['a'],[True,1,1]]
- print(my_list)
复制代码 列表的读取
读取列表中最重要的概念是下标,也叫做位置或者索引。下标从 0 开始计数,即列表内第一项元素的索引是 0,例如下述代码,读取数字 2。 - my_list = [1,2,3,4,5]
- print(my_list[1]) # 数字2所在的下标为1
复制代码 列表操作
列表是一个动态容器,其支持对其元素的增加,删除,修改,查询,合并等操作,用到的都是字典对象的方法,基本操作的方法名如下所示:
- :末尾追加元素;
- :末尾追加列表,也可以理解为两个列表合并;
- :在指定位置插入元素;
- :列表复制;
- :清空列表;
- :统计列表指定元素个数;
- :删除并返回指定下标对应的元素;
- :删除列表中指定元素;
- :获取指定元素的下标;
- :反转元素;
- :对列表元素进行排序。
列表元素添加方法
从上述清单中,可以查看到列表追加元素,有两种办法可以实现,其一是使用 方法,其二是使用 方法,示例代码如下所示: - my_list = [1,2,3,4,5]
- my_list.append(888)
- my_list.insert(1,666)
- print(my_list)
复制代码对比一下上述两个方法的差异,可以看到 仅能在里列表末尾追加元素,而 方法可以在任意位置插入元素,即 方法的第一个参数为索引,表示插入位置。
列表元素查找方法
在列表中查找某一元素,使用 方法实现,该方法的语法格式如下所示: - my_list.index(value,[start[,stop]])
复制代码其中 是待查找目标列表, 表示待查找的值, 和 为可选参数,表示开始查找的索引值和结束查找的索引值,该方法当查找到元素后,会返回第一个找到的元素索引位置,例如下述代码,会返回 。 - my_list = [1,2,3,4,5]
- ret = my_list.index(4)
- print(ret)
复制代码如果该方法没有在目标列表中找到元素,会报错,错误类型为 。
除 方法外,列表的读取其实也是元素查找方式,例如读取下标 2 的元素,代码如下: - my_list = [1,2,3,4,5]
- ret = my_list[2]
- print(ret)
复制代码还可以使用成员运算符 ,对列表进行判断,关于成员操作符的更多知识,后期总结运算符的时候,会详细说明。以下代码会返回 ,即表示数字 2 在列表中。 - my_list = [1,2,3,4,5]
- ret = 2 in my_list
- print(ret)
复制代码在列表中还有一个重要知识点,即列表切片,学习该知识点需要先牢牢掌握列表按索引读取相关语法,切片的语法格式如下: - my_list = [1,2,3,4,5]
- ret = my_list[1:3:2]
- print(ret)
复制代码可以看到上述第二行代码,在原列表读取的规则之上,格式变为了 ,将其转换为中文语法说明如下所示: 使用切片的时候,英文冒号不能缺少,起始索引为必选项,结束索引和步长为可选项。
如果理解困难,最好的办法就是反复用代码校验。 - # 缺省结束索引,默认获取到列表结尾元素
- my_list = [1,2,3,4,5,6,7,8,9,10]
- ret = my_list[1:]
- print(ret) # 输出 [2, 3, 4, 5, 6, 7, 8, 9, 10]
- # 缺少步长,默认按照索引+1解决,同时不包含结束索引代表的元素
- my_list = [1,2,3,4,5,6,7,8,9,10]
- ret = my_list[1:5]
- print(ret) # 输出 [2, 3, 4, 5]
- # 步长设置为2,表示索引每次+2
- my_list = [1,2,3,4,5,6,7,8,9,10]
- ret = my_list[1:6:2]
- print(ret) # 输出 [2, 4, 6]
复制代码上述代码如何理解已经在注释中进行说明,重点要掌握的切片知识点整理如下:
一首打油诗送给大家~
切片不能丢冒号 结束步长可不要 默认索引都加一 左闭右开要牢记
列表元素的修改和删除
前文已经掌握了列表的读取,将读取到的元素重新赋值就是列表的修改,例如下述代码。 - my_list = [1,2,3,4,5,6,7,8,9,10]
- my_list[1] = 666
- print(my_list)
复制代码 列表元素删除 在 Python 中,提出了多种列表元素删除的方式,本小节学习三个列表元素删除的方法,即 , , ,除此之外还可以使用 函数对列表元素进行删除。 - my_list = [1,2,3,4,5,6,7,8,9,10]
- my_list[1] = 666
- my_list.clear() # 列表清空
- print(my_list)
复制代码使用 方法删除列表元素,默认从尾部删除,并返回被删除的元素。 - my_list = [1,2,3,4,5,6,7,8,9,10]
- my_list[1] = 666
- ret = my_list.pop()
- print(my_list) # 删除最后一项
- print(ret) # 返回被删除的元素
复制代码方法中可以传递一个 值,该值表示下标值,即删除指定位置的元素,与之对应的是 方法的参数,该值表示待删除的目标元素,例如在列表中删除元素 5,使用的代码如下: - my_list = [1,2,3,4,5,6,7,8,9,10]
- my_list[1] = 666
- ret = my_list.remove(5)
- print(my_list)
- print(ret)
复制代码测试之后,可以发现 方法无返回值,并且该方法只删除第一个匹配到的元素,也就是当列表中有多个目标元素时,只有最先匹配到的元素被删除。 函数可以删除列表中指定元素,也可以直接删除列表对象,代码如下: - # 删除索引位置为5的元素
- my_list = [1,2,3,4,5,6,7,8,9,10]
- my_list[1] = 666
- del(my_list[5])
- print(my_list)
- # 删除整个列表对象
- my_list = [1,2,3,4,5,6,7,8,9,10]
- my_list[1] = 666
- del my_list
- print(my_list)
复制代码 列表元素合并
使用 方法可以将列表进行合并: - my_list1 = [1,2,3]
- my_list2 = [666,777,888]
- my_list1.extend([666,777,888])
- print(my_list1)
复制代码注意 方法不会生成新的列表。
列表合并也可以使用加号( ) 实现,该语法会产生一个新的列表。 - my_list1 = [1,2,3]
- my_list2 = [666,777,888]
- my_list = my_list1 + my_list2
- print(my_list)
复制代码 列表元素顺序变化
列表排序用到的方法是 ,该方法默认按照 ASCII 进行增序或者减序排列,测试代码如下所示: - my_list = [4,1,2,6,7,3,8,12,10]
- my_list.sort()
- print(my_list)
复制代码在 方法中也有 2 个参数,格式如下: - my_list.sort(key=None,reverse=False)
复制代码参数 为可选参数,可以传入一个函数名,该函数会作用与列表中的每一项元素,例如将列表中每一项元素都转换为小写字母。 - my_list = ['ABC','CDS','Juejin','YUE']
- my_list.sort(key=str.lower)
- print(my_list)
复制代码方法会对原列表进行排序,如果想生成一个新列表,可以使用 函数,代码如下: - my_list = ['ABC','CDS','Juejin','YUE']
- ret = sorted(my_list)
- print(ret)
复制代码除此之外,还可以使用 方法。 - my_list = ['ABC','CDS','Juejin','YUE']
- my_list.reverse()
- print(my_list)
复制代码 元组学习要点
元组定义与列表基本一致,只需要做好如下区分即可。
- 元组不能对其包含的元素进行修改,即元组不可变;
- 元组用小括号()表示。
再次进行简单总结:
元组是不可变序列,也是可以包含任意数据类型的容器,用小括号( )表示,元素之间用逗号( )分隔 。一定要注意的就是不可变序列,不可变的含义是不能对元组进行增加,修改,删除,位置变换等操作。
元组基本知识
声明一个元组- my_tuple = ()
- print(my_tuple)
- print(type(my_tuple))
复制代码声明一个只包含 1 个值的元组,要求必须带一个逗号,否则会按照整数处理。 - my_tuple = (1,)
- print(my_tuple)
- print(type(my_tuple))
复制代码声明包含多个值的元组: - my_tuple = (1,2,3,4,5,6,[1])
- print(my_tuple)
- print(type(my_tuple))
复制代码 元组的基本操作
由于元组对象的方法使用与列表一致,接下来仅对元组进行罗列。
其余可作用于元组的内置函数如下所示:
- :获取元组元素个数;
- :返回元组中最大值;
- :返回最小值;
- :将列表转换为元组;
- :返回对象类型;
- :删除整个元组对象,注意不能删除元组内元素;
- :求和。
以上就是Python学习之列表和元组的使用详解的详细内容,更多关于Python列表 元组的资料请关注晓枫资讯其它相关文章!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:  进行删除处理。
4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
|