第2章 Python序列 序列是程序设计中经常用到的数据存储方式,几乎每一种程序设计语言都提供了表格数据结构,如C和Basic中的一维、多维数组等。 Python提供的序列类型在所有程序设计语言中是最丰富,最灵活,也是功能最强大的。 序列是一系列连续值,它们通常是相关的,并且按一定顺序排列。 Python中常用的序列结构有列表、元组、字典、字符串、集合以及range等等。 除字典和集合之外,列表、元组、字符串等序列均支持双向索引,第一个元素下标为0,第二个元素下标为1,以此类推;最后一个元素下标为-1,倒数第二个元素下标为-2,以此类推。 2.1 列表 列表是Python中内置可变序列,是一个元素的有序集合,列表中的每一个数据称为元素,列表的所有元素放在一对中括号“[”和“]”中,并使用逗号分隔开; 当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙; 在Python中,一个列表中的数据类型可以各不相同,可以同时分别为整数、实数、字符串等基本类型,甚至是列表、元素、字典、集合以及其他自定义类型的对象。例如: [10, 20, 30, 40] ['crunchy frog', 'ram bladder', 'lark vomit'] ['spam', 2.0, 5, [10, 20]] [['file1', 200,7], ['file2', 260,9]] 列表方法 2.1.1 列表创建与删除 使用“=”直接将一个列表赋值给变量,例如: >>> a_list = ['a', 'b', 'mpilgrim', 'z', 'example'] 使用list函数将其他类型数据转换为列表。例如: >>> a_list = list((3,5,7,9,11)) >>> a_list [3, 5, 7, 9, 11] 使用del删除整个列表 >>> del a_list >>> a_list Traceback (most recent call last): File "", line 1, in a_list NameError: name 'a_list' is not defined 2.1.2 列表元素增加与删除 使用“+”运算符,结果为新列表,速度较慢 >>> aList = [3,4,5] >>> aList = aList + [7] >>> aList [3, 4, 5, 7] 使用append方法,原地修改列表,速度较快 >>> aList.append(9) >>> aList [3, 4, 5, 7, 9] 2.1.2 列表元素增加与删除 使用列表对象的extend方法可以将另一个迭代对象的内容添加至该列表对象 >>> aList.extend([11,13]) >>> aList [3, 4, 5, 7, 9, 11, 13] >>> aList.extend((15,17)) >>> aList [3, 4, 5, 7, 9, 11, 13, 15, 17] 使用列表对象的insert方法将元素添加至指定位置 >>> aList.insert(3,6) >>> aList [3, 4, 5, 6, 7, 9, 11, 13, 15, 17] 2.1.2 列表元素增加与删除 使用乘法来扩展列表对象,生成包含所有元素的新列表 >>> aList = [3,5,7] >>> aList = aList * 3 >>> aList [3, 5, 7, 3, 5, 7, 3, 5, 7] 该方法同样适用于字符串和元组 2.1.2 列表元素增加与删除 使用del命令删除列表中的指定位置上的元素 >>> del a_list[1] >>> a_list [3, 7, 9, 11] 使用列表的pop方法删除并返回指定(默认为最后一个)位置上的元素 >>> a_list = list((3,5,7,9,11)) >>> a_list.pop() 11 >>> a_list [3, 5, 7, 9] 2.1.2 列表元素增加与删除 使用列表对象的remove方法删除首次出现的指定元素 >>> a_list = [3,5,7,9,7,11] >>> a_list.remove(7) >>> a_list [3, 5, 9, 7, 11] 如果列表中不存在要删除的元素,则抛出异常 注意:使用“循环+remove方法”删除列表中的重复元素可能会出错,应按照从后向前的顺序来循环操作。 2.1.2 列表元素增加与删除 >>> a_list = [1,1,1,1,1,1,1,1,1,1,1,1] >>> len(a_list) 12 >>> for i in