网站首页 > 技术文章 正文
每天三分钟,我们一起学python。在上期python基本数据类型——字符串中,我们学习了python中字符串的基本知识和操作。学习了字符串还有数字类型,我们基本上可以进行许多操作了,但是在很多情况下还是远远不够的,我们会需要用到由各种基本数据类型组成集合,集合的不同组成方式就是数据结构。在python中内置的数据结构有四种:
- 列表(list)
- 元组(tuple)
- 字典(dict)
- 集合(set)
今天,我们要学习的就是python数据结构中的列表(list)。
列表(list)基本介绍
list可以通过方括号括起、逗号分隔的一组值得到。一个列表可以包含不同类型的元素,但通常使用时各个元素类型相同。例如,下面的列表中有
它是一组用方括号括起来、逗号分隔的数据。列表的元素可以是任何类型的,但使用时通常各个元素的类型是相同的。下面的列表有6个元素,元素类型包括字符串、整数、浮点数和列表:
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]] >>> list_test [1, 2, 3.1415926, 'yhmxx.cn', '有趣技术交流分享', [1, 2, 3]]
列表(list)的索引(index)
与字符串一样,列表也支持索引。例如:
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]] >>> list_test[0] 1 >>> list_test[5] [1, 2, 3] >>> list_test[4] '有趣技术交流分享' >>> list_test[3] 'yhmxx.cn' >>> list_test[-1] [1, 2, 3] >>> list_test[-4] 3.1415926
通过索引,我们不仅可以访问到某一元素,还可以修改某一元素。既然我们可以修改,说明列表是一种可变的( Mutable) 数据类型, 就是说这种类型是可以被改变的。
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]] >>> list_test[1]=1.732 >>> list_test [1, 1.732, 3.1415926, 'yhmxx.cn', '有趣技术交流分享', [1, 2, 3]]
列表(list)的切片(slicing)
通过索引,我们可以访问列表的某一个元素。但有时候我们要取列表的一个片段,这就是“切片”操作。所有的切片操作都返回一个新列表,这个新列表包含所需要的元素。就是说,如下的切片会返回列表的一个新的 拷贝。
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]] >>> list_test[:] [1, 2, 3.1415926, 'yhmxx.cn', '有趣技术交流分享', [1, 2, 3]]
切片是通过索引来实现的,索引使用冒号:分隔,分别是切片的开始索引和结束索引,[1:5]代表的是一个左开右闭区间,即包含左边索引的元素,到右边索引为止但不包括该元素。也就是[0:a]+[a:b]=[0:b]。
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]] >>> list_test[1:3] [2, 3.1415926] >>> list_test[:5] [1, 2, 3.1415926, 'yhmxx.cn', '有趣技术交流分享'] >>> list_test[2:] [3.1415926, 'yhmxx.cn', '有趣技术交流分享', [1, 2, 3]]
列表运算
列表也可以像字符串那样进行一些运算。
1.“+”运算:将列表进行合并。
>>> list1=[1,2,3] >>> list2=[4,5,6] >>> list1+list2 [1, 2, 3, 4, 5, 6]
2.“*”运算:将列表重复。
>>> list1=[1,2,3] >>> list1*3 [1, 2, 3, 1, 2, 3, 1, 2, 3]
列表删除(del)
有一种方式可以从列表按照给定的索引而不是值来移除一个元素: 那就是 del 语句。 del 语句也可以用来从列表中移除切片或者清空整个列表。例如:
>>> list_test=[1,2,3.1415926,'yhmxx.cn','有趣技术交流分享',[1,2,3]] >>> del list_test[1] >>> list_test [1, 3.1415926, 'yhmxx.cn', '有趣技术交流分享', [1, 2, 3]] >>> del list_test[0:2] >>> list_test ['yhmxx.cn', '有趣技术交流分享', [1, 2, 3]] >>> del list_test[:] >>> list_test [] >>> del list_test >>> list_test Traceback (most recent call last): File "<pyshell#33>", line 1, in <module> list_test NameError: name 'list_test' is not defined
需要注意del list_test[:]和del list_test是不同的,del list_test[:]是删除列表中的所有元素,列表变成一个空列表,但是列表还在。而del list_test是将列表删除,列表就不存在了。
列表相关内置函数
1. len( )
计算列表的长度,即计算列表元素的个数。
2.max( )
返回列表元素中的最大值,列表元素必须是同一类型且可比较,比如都是数字型的,或都是字符串,如果类型不统一就会报错。
3.min( )
返回列表元素中的最小值。元素类型要求跟max( )一样。
4.sum( )
计算列表所有元素的和,其元素类型必须是数值型的(整数、浮点数)。
5.sorted( )
返回一个排序的列表,但并不改变原列表。
6.append(x)
在列表的末尾添加一个元素。相当于 a[len(a):] = [x] 。
7.insert(i, x)
在给定的位置插入一个元素。第一个参数是要插入的元素的索引,所以 a.insert(0, x) 插入列表头部, a.insert(len(a), x) 等同于 a.append(x) 。
8.remove(x)
移除列表中第一个值为 x 的元素。如果没有这样的元素,则抛出 ValueError 异常。
9.pop([i])
删除列表中给定位置的元素并返回它。如果没有给定位置, a.pop() 将会删除并返回列表中的最后一个元素。(方法签名中 i 两边的方括号表示这个参数是可选的,而不是要你输入方括号。你会在 Python参考库中经常看到这种表示方法)。
10.clear( )
删除列表中所有的元素。相当于 del a[:] 。
11.index( )
返回遇到的第一个某值的索引,如果列表不包含该值则抛出错误。
12.count(x)
返回元素 x 在列表中出现的次数。
13.reverse( )
反转列表中的元素。
14.copy( )
返回列表的一个浅拷贝。相当于 a[:] 。
可能会注意到,像 insert , remove 或者 sort 方法,只修改列表,没有打印出返回值——它们返回默认值 None 。这是 Python 中所有可变数据结构的设计原则。
以上就是今天给大家分享的内容了,如果大家喜欢我分享的内容,别忘了关注点赞评论转发哦!如果大家有什么问题可以在评论区留言,大家一起探讨交流。后期我会分享更多精彩内容,欢迎大家持续关注!
想要了解更多有趣的技术分享,欢迎大家点击下方链接关注我的个人网站。
猜你喜欢
- 2024-09-23 Python数据类型之列表list(python列表list函数)
- 2024-09-23 从零开始学Python:第十一课-常用数据结构之列表
- 2024-09-23 苹果鱼教你入门Python(二):列表(列表 python)
- 2024-09-23 Python3 列表详解(python列表入门)
- 2024-09-23 DAY4-step6 Python示例说明range()函数:浮点数,列表,For循环
- 2024-09-23 python——列表的使用(python中列表常用方法)
- 2024-09-23 Python小案例38-列表的定义和创建
- 2024-09-23 Python中列表(list(python中列表list索引的用法)
- 2024-09-23 Python基础之列表(python列表教程)
- 2024-09-23 python自学篇(第四章:列表)(软件编程入门自学python)
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)