本文共 980 字,大约阅读时间需要 3 分钟。
1.嵌套列表的含义
指列表中含有多个小列表,形如:
2.如何提取嵌套列表中指定位置的元素
格式:list_name[index1][index2]
其中index1指第几个小列表,index2指该小列表中第几个元素。
如:提取zhang的成绩。
分析:zhang出现在大列表中第一个小列表中,因此第一个索引值为0,并且成绩是第一个小列表中的第2个元素,因此索引值为1。
3.如何根据成绩对整个列表降序排序
推荐方法:使用sort()+lambda
注释:①默认的sort函数会根据小列表的第一个元素(即名字)升序排列。
②sort()函数中参数key用于指定排序的关键字。lambda x : x[1]表示使用小列表中的第2个元素(即成绩)排序,x[1]为排序的依据,如果按照人名排序,则改为:key = lambda x : x[0]。这里x是形参,表示大列表中的一个个小列表,可以是任何名字,如y、z、a……x[0]表示小列表中第1个元素(即名字),x[1]表示小列表中第2个元素(即成绩)。
③reverse = True表示降序排列
如果根据姓名字符串的长度进行降序排列:
也可以看出,排序依据不一定是列表中现有的值,可以是计算出的值,如这里的len(x[0])。
4.如何计算成绩的均值
注释:①[lst[1] for lst in stu] 是列表推导式,用于提取嵌套列表中学生的成绩,最终也是一个列表。其中lst表示大列表中的小列表,是形参,可以用其他字母如x表示,但是,特别注意lst[1]和后面 的lst名字必须保持一致。另外,返回的是lst[1],即返回小列表的第2个元素,即成绩。
列表推导式的格式:
new_lst = [表达式 for 变量 in 范围 if 条件 ]
其中表达式是包含变量的式子,如a = [x**2 for x in range(0,11) if x%2==0]中,x**2为表达式,x为变量。这个代码用于计算0~10中偶数的平方。
运行效果如下:
②len(stu)通过计算大列表的长度,可以知道大列表中包含多少个小列表,而一个小列表就是一个学生的成绩记录,因此,可以知道总共有多少学生。
参考资料:
高级语言程序设计(Python)_哈尔滨工业大学_中国大学MOOC(慕课)www.icourse163.org转载地址:http://aoggp.baihongyu.com/