11.1 元组的概念
11.2 元组的创建
Python中,除用小括号和逗号直接创建元组外[1],还可以使用tuple()函数将其他类型的数据转换成元组[2] 。
语法格式: tuple(iterable=(), ……)
该函数可将range对象、列表等可迭代对象转换成一个元组。当参数为空时,该函数将返回一个空元组。如果参数是个元组,就返回该参数。
11.3 序列的封包与拆包
11.4 列表的概念
11.5 列表的创建
Python中,除用中括号和逗号直接创建列表外[1],还可以使用list()函数将其他类型的数据转换成列表[2] ,或使用字符串的split()方法分割字符串,得到分割后的字符串列表[3]。此外,也可以用列表推导式等生成列表。
语法格式: list(iterable=(), ……)
该函数可将range对象、元组等可迭代对象转换成一个元组。当参数为空时,该函数将返回一个空列表。如果参数是个列表,就返回该参数。
11.6 列表的常用操作
1、索引赋值
索引赋值:利用索引值选择列表中特定的元素进行赋值操作,可以修改列表中某一个元素的值。
语法格式:<列表名>[i] = a
其中,i是列表中某元素的索引值,a为要赋予的新值,其值可以与列表原有元素类型相同,也可以不同,甚至还可以是一个列表或元组。注意,索引赋值不可以对不存在的元素进行赋值,当元素的索引值超出范围时,就会产生一个IndexError错误
2、切片赋值
切片赋值:将列表的切片置于赋值语句的左边称为切片赋值,切片赋值可以同时修改列表中多个元素的值。
语法格式:<列表名>[i:j:step] = iterable
切片赋值操作相当于将原列表切片的元素删除,同时用新的可迭代对象代替切片的位置。切片赋值要求赋值号右边必须是可迭代对象,如列表、字符串等,即便只有单独一个值,也要把它转换成可迭代序列。
3、元素的添加
append方法:在列表尾部添加一个元素。
格式:<列表名>.append (x)
extend 方法:在列表尾部添加多个元素,其参数必须为可迭代对象。
格式:<列表名>.extend( iterable)
insert方法:在列表指定位置 I 插入一元素 x
格式: <列表名>.insert (i, x)
4、元素的删除
5、列表的排序
sort方法:对原列表中的数据进行排序,默认规则是直接比较元素的大小。关键字参数reverse的默认值为False,按升序排列,设置其值为True,可实现降序排列。 key参数可接收带有单个参数的函数,指定应用到每个参与排序元素上的规则。
格式:<列表名>.sort(*,key=None, reverse=False)
sorted函数:根据可迭代对象参数 iterable返回一个排序后的新列表;key参数和reverse 参数的含义同sort方法。
格式:sorted(iterable, *,key=None, reverse=False)
6、列表的逆序
reverse方法:对原列表中的数据进行逆序排列排序。
格式:<列表名>.reverse( )
reversed函数:返回一个将序列seq中元素逆序的迭代器对象。如需查看逆序结果可以用list()将翻转结果转为列表。
格式:reversed ( seq )
7、列表的赋值
列表的赋值:将列表对象赋值给一个新变量时,并不会产生一个新的列表对象,而相当于给列表对象通过增加标签的方式附加了一个新的名字。
如下图所示,当列表a的元素发生变化时,列表b同时发生变化,因为列表a和b指示的是同一个对象
8、列表的复制
11.7 列表推导式和生成器
1、列表推导式(list comprehension):
也称列表解析式,是一种创建列表的简洁的语法表达方式。推导式本质上是集成了变换和筛选功能的函数,能够从一个序列转换成另一个序列。
Python中共包括:列表推导式、字典推导式和集合推导式三种推导式
列表推导式由一个表达式[1]和一个或多个for子句[2]、0个或多个if从句[3]构成,语法格式如下所示。
格式: [ 表达式 for 变量 in 可迭代对象 if 条件表达式]
[ 表达式 for 变量1 in 可迭代对象1 for 变量2 in 可迭代对象2 if 条件表达式]
2、生成器
11.8 程序举例
示例1:成绩统计分析