首页 理论教育 Python即学即用|列表操作与内建函数

Python即学即用|列表操作与内建函数

时间:2023-10-27 理论教育 版权反馈
【摘要】:列表也是Python中常用的序列类型,它是能够存储任意多个不同数据类型对象的容器。例如:2.序列操作符列表支持表2-2中的所有序列操作符,如:访问或修改列表中某个值列表与字符串不同。例:4.列表内建函数列表的内建函数实际是列表对象的方法,使用格式为“列表对象名.函数名()”。extend函数可在列表后追加一个列表的全部元素insert函数可插入新元素。sort函数可进行列表排序。下面用列表来处理英文歌曲名单,处理过程满足堆栈特点。

Python即学即用|列表操作与内建函数

列表也是Python中常用的序列类型,它是能够存储任意多个不同数据类型对象的容器。Python的列表有点像C语言中的数组,但比数组灵活,列表元素的类型可以不同,还可以用用户定义的对象作为自己的元素。Python使用方括号[ ]作为列表的界定符,多个元素之间用逗号分隔,如: 

978-7-111-53989-6-Chapter02-86.jpg

1.创建列表 

只要把用逗号分隔的各数据项用方括号[]括起来就创建了一个列表,也可以用工厂函数list将字符串转换为列表。例如: 

978-7-111-53989-6-Chapter02-87.jpg

2.序列操作符 

列表支持表2-2中的所有序列操作符,如:

(1)访问或修改列表中某个值 

978-7-111-53989-6-Chapter02-88.jpg

列表与字符串不同。字符串创建后就不能改变,但是列表可以改变,所以只能通过索引访问但不能改变字符串中的字符,但通过索引既可以访问也可以改变列表中的值。 

如果列表中的元素还是列表,要访问其中的值,可以使用多维下标,类似C语言中的多维数组,如: 

978-7-111-53989-6-Chapter02-89.jpg

(2)列表切片 

通过切片操作符从列表中取出子列表,如:

978-7-111-53989-6-Chapter02-90.jpg

与字符串一样,列表的切片操作也遵从正负索引规则,正索引从零开始,负索引最后一个元素为-1,如果在切片中省略起始索引或结束索引,则从列表的最开始处开始或取到列表的最末尾结束。 

也可以通过切片操作,改变列表中的几个值。不仅可以改变列表元素的值,而且可以改变列表元素的类型,如: 

978-7-111-53989-6-Chapter02-91.jpg

3)列表重复

978-7-111-53989-6-Chapter02-92.jpg

4)列表连接

978-7-111-53989-6-Chapter02-93.jpg

5)成员操作符(in,not in)

978-7-111-53989-6-Chapter02-94.jpg

978-7-111-53989-6-Chapter02-95.jpg

3.比较操作符 

列表也可以使用表2-6中的标准比较操作符比较大小,比较规则与内建函数cmp()比较规则相同。两个列表比较规则为:从左至右依次取出对应的列表元素进行比较,直到比出大小为止,如果直到最后一个元素都相同,则两个列表相同。在比较过程中,如果对应元素的类型不同,则比较遵守下列规则: 

(1)如果均为数字,则强制类型转换后,比较大小。 

(2)如果一方为数字,则另一方大,因为不同类型元素中数字是最小的。 

(3)如果均不是数字,则通过类型名字的字母顺序进行比较。 

(4)如果一方尚有元素,另一方已至列表末尾,则先结束的小。 

例: 

978-7-111-53989-6-Chapter02-96.jpg

4.列表内建函数 

列表的内建函数实际是列表对象的方法,使用格式为“列表对象名.函数名()”。列表是多个多种类型元素的容器,创建后可以改变,可以利用列表内建函数对列表实现追加、删除和插入等更新操作。 

(1)append函数可在列表后添加新元素。 

978-7-111-53989-6-Chapter02-97.jpg

(2)extend函数可在列表后追加一个列表的全部元素

978-7-111-53989-6-Chapter02-98.jpg(www.xing528.com)

(3)insert函数可插入新元素。

978-7-111-53989-6-Chapter02-99.jpg

(4)pop和remove函数可删除元素 

pop函数删除指定索引值所对应的元素,如果不指定索引值,默认删除最后一个元素。remove函数删除指定内容所对应的元素,如果列表中多个元素与指定内容相同,则只删除第一个与指定内容相同的元素。 

Pop举例: 

978-7-111-53989-6-Chapter02-100.jpg

remove举例:

978-7-111-53989-6-Chapter02-101.jpg

(5)count函数可统计对象出现次数。

978-7-111-53989-6-Chapter02-102.jpg

(6)index函数可查找对象。

index函数的使用格式为: 

978-7-111-53989-6-Chapter02-103.jpg

要求i>=0,j<=len(list),i<j。 

作用为从列表的第i个(从0开始计数)元素开始查找对象obj,查到第j个元素结束不包括第j个元素),如果查到则返回元素的索引值,否则会引发ValueError异常。 

978-7-111-53989-6-Chapter02-104.jpg

(7)reverse函数可翻转列表。

978-7-111-53989-6-Chapter02-105.jpg

(8)sort函数可进行列表排序。

sort函数的使用格式为: 

978-7-111-53989-6-Chapter02-106.jpg

作用为以指定的方式排序列表中的成员,如果key参数指定,则按照指定的方式比较各个元素,如果reverse标志设置为True,则列表以逆序排列。 

978-7-111-53989-6-Chapter02-107.jpg

5.列表实现常见数据结构 

堆栈和队列是数据结构中的两种常见结构,因为列表是一个可变的容器,所以很容易使用列表来实现堆栈和队列的功能。 

(1)堆栈 

堆栈的典型特点是“后进先出”,添加新元素时,添加在后面,删除元素时,从最后开始删除。下面用列表来处理英文歌曲名单,处理过程满足堆栈特点(代码:ch2-2.py)。 

978-7-111-53989-6-Chapter02-108.jpg

运行该程序,并依次输入last christmas, all things bright and beautiful,burning,sweet chocolate,love fool, what hurts the most,sitting down here,-1,结果如下: 

978-7-111-53989-6-Chapter02-109.jpg

(2)队列 

队列是一种“先进先出”的数据类型。添加新元素时,添加在后面,删除元素时,从最前面开始删除。 

下面用列表处理面试排队的问题(ch2-3.py)。 

978-7-111-53989-6-Chapter02-110.jpg

978-7-111-53989-6-Chapter02-111.jpg

运行该程序,并依次输入mike,john,janice,mary,jenny,end,结果如下:

978-7-111-53989-6-Chapter02-112.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈