列表也是Python中常用的序列类型,它是能够存储任意多个不同数据类型对象的容器。Python的列表有点像C语言中的数组,但比数组灵活,列表元素的类型可以不同,还可以用用户定义的对象作为自己的元素。Python使用方括号[ ]作为列表的界定符,多个元素之间用逗号分隔,如:
1.创建列表
只要把用逗号分隔的各数据项用方括号[]括起来就创建了一个列表,也可以用工厂函数list将字符串转换为列表。例如:
2.序列操作符
列表支持表2-2中的所有序列操作符,如:
(1)访问或修改列表中某个值
列表与字符串不同。字符串创建后就不能改变,但是列表可以改变,所以只能通过索引访问但不能改变字符串中的字符,但通过索引既可以访问也可以改变列表中的值。
如果列表中的元素还是列表,要访问其中的值,可以使用多维下标,类似C语言中的多维数组,如:
(2)列表切片
通过切片操作符从列表中取出子列表,如:
与字符串一样,列表的切片操作也遵从正负索引规则,正索引从零开始,负索引最后一个元素为-1,如果在切片中省略起始索引或结束索引,则从列表的最开始处开始或取到列表的最末尾结束。
也可以通过切片操作,改变列表中的几个值。不仅可以改变列表元素的值,而且可以改变列表元素的类型,如:
3)列表重复
4)列表连接
5)成员操作符(in,not in)
3.比较操作符
列表也可以使用表2-6中的标准比较操作符比较大小,比较规则与内建函数cmp()比较规则相同。两个列表比较规则为:从左至右依次取出对应的列表元素进行比较,直到比出大小为止,如果直到最后一个元素都相同,则两个列表相同。在比较过程中,如果对应元素的类型不同,则比较遵守下列规则:
(1)如果均为数字,则强制类型转换后,比较大小。
(2)如果一方为数字,则另一方大,因为不同类型元素中数字是最小的。
(3)如果均不是数字,则通过类型名字的字母顺序进行比较。
(4)如果一方尚有元素,另一方已至列表末尾,则先结束的小。
例:
4.列表内建函数
列表的内建函数实际是列表对象的方法,使用格式为“列表对象名.函数名()”。列表是多个多种类型元素的容器,创建后可以改变,可以利用列表内建函数对列表实现追加、删除和插入等更新操作。
(1)append函数可在列表后添加新元素。
(2)extend函数可在列表后追加一个列表的全部元素
(www.xing528.com)
(3)insert函数可插入新元素。
(4)pop和remove函数可删除元素
pop函数删除指定索引值所对应的元素,如果不指定索引值,默认删除最后一个元素。remove函数删除指定内容所对应的元素,如果列表中多个元素与指定内容相同,则只删除第一个与指定内容相同的元素。
Pop举例:
remove举例:
(5)count函数可统计对象出现次数。
(6)index函数可查找对象。
index函数的使用格式为:
要求i>=0,j<=len(list),i<j。
作用为从列表的第i个(从0开始计数)元素开始查找对象obj,查到第j个元素结束不包括第j个元素),如果查到则返回元素的索引值,否则会引发ValueError异常。
(7)reverse函数可翻转列表。
(8)sort函数可进行列表排序。
sort函数的使用格式为:
作用为以指定的方式排序列表中的成员,如果key参数指定,则按照指定的方式比较各个元素,如果reverse标志设置为True,则列表以逆序排列。
5.列表实现常见数据结构
堆栈和队列是数据结构中的两种常见结构,因为列表是一个可变的容器,所以很容易使用列表来实现堆栈和队列的功能。
(1)堆栈
堆栈的典型特点是“后进先出”,添加新元素时,添加在后面,删除元素时,从最后开始删除。下面用列表来处理英文歌曲名单,处理过程满足堆栈特点(代码:ch2-2.py)。
运行该程序,并依次输入last christmas, all things bright and beautiful,burning,sweet chocolate,love fool, what hurts the most,sitting down here,-1,结果如下:
(2)队列
队列是一种“先进先出”的数据类型。添加新元素时,添加在后面,删除元素时,从最前面开始删除。
下面用列表处理面试排队的问题(ch2-3.py)。
运行该程序,并依次输入mike,john,janice,mary,jenny,end,结果如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。