例题1 :list=['chaoyang','tongzhou',18,1995],则list[0:-1]的结果为________。
A.[]
B.['chaoyang','tongzhou',18]
C.['chaoyang','tongzhou',18,1995]
D.[1995]
答案 :B
解析 :
本题重点是-1代表的位置。
取单个数据的情况:
如果要取最后一个元素,可以用-1作索引,直接获取最后一个元素,本题目中list[-1]对应1995。以此类推,获取倒数第二个数据,可以用-2作索引,本题目中list[-2]对应18。
取一个区间的数据的情况:
冒号左边的数字对应的是从左边第几个元素开始取;冒号右边的数字对应的是取到右面第几个元素为止。
这时,索引0对应第一个元素,它的值是chaoyang,而索引-1对应从最后往回数一个元素(不包含最后一个元素),它的值就是18。
list[0:-1]代表的就是从第一个元素开始取到倒数第二个元素为止。
因而结果为B选项。
拓展 :
列表提取元素,可以顺序提取,也可以倒序提取。
在列表中,list[-1]就是用来获取最后一个元素的。
同理,list[-2]可以获得倒数第二个元素。
如下例中,list[-1]结果为1987;list[-2]结果为xiaoyang。
例题2 :阅读下面的程序,选择正确的输出结果。________
A.['丁九','常七']
B.['王五','常七','丁九']
C.['王五','常七']
D.[]
答案 :A
解析 :
根据规则,list[m:n:p]表示要从索引为m的元素开始,以p为步长取数据,取到索引为n的元素为止,但不包括索引为n的元素。
本题目中,name[6:2:-2]表示要从索引为6的元素开始,倒序以-2为步长取数据,取到索引为2的元素为止,但不包括索引为2的元素。
因此,索引为6的“丁九”可以取到,接着是索引为4的“常七”,然后终止获取其余的元素。
故选A。
拓展 :
切片的用法:数据[起始下标:结束下标:步长],如果步长不写,默认为1。
步长为2时,每隔2个元素才取出一个来。
如果步长为负数,比如-1,则name[::-1]相当于复制一个反转的列表,如下例。
在以上结果中,当索引超出范围时,默认是从最后一个元素开始获取,因而下列两种结果一样,均为['xiaosong','xiaoyang']:
例题3 :编写Python程序,完成如下操作。
1)将英语成绩为90、数学成绩为89、语文成绩为70传入字典。
2)查看键值对的个数。
3)查看是语文成绩是多少。
4)增加一门课程的成绩,历史成绩为69。
5)查看物理成绩是多少。
6)查看成绩数据字典中的所有键(keys)。
7)查看成绩数据字典中的所有值(values)。
答案 :
解析 :
在以上程序中,重点是如何使用字典的几种常用函数,其中包括字典定义函数、查看键值对函数、增加元素函数等。
拓展 :
根据键来获取值常用的方法为“字典[键]”(dict[key]),但是当访问字典中并不存在的值时,这种方法就会引发KeyError错误,此时可以采用get()函数。
get()函数是根据键来获取值的一种常用方法,如果使用get()函数访问的键存在,便会返回值,如果访问的键不存在,该函数会返回None,不会导致程序运行异常。
keys()函数和values()函数分别用于获取字典中的所有键和所有值。