lst = [['20200001','a1'],['20200002','a2'],['20200003','a3'],['20200004','a4'],['20200005','a5'],['20200006','a6'],['20200007','a7'],['20200008','a8'],['20200009','a9'],['20200010','a10'],['20200011','b1'],['20200012','b2'],['20200013','b3'],['20200014','b4'],['20200015','b5'],['20200016','b6'],['20200017','b7'],['20200018','b8'],['20200019','b9'],['20200020','b10']]n = input()'''if n == lst[len(lst)-1][0]: print(lst[len(lst)-1])'''right = len(lst)-1left = 0while right>=1: mid = (left + right) // 2 if lst[mid][0]==n: print(lst[mid]) break elif n>lst[mid][0]: lst = lst[mid+1:right+1] else: lst = lst[0:mid+1] N=len(lst) right = N-1小白一枚,这是我写的关于折半查找的一个程序,题目如下:折半查找:1个列表里存储了20个子列表,各子列表内存储了学生的学号及姓名两个元素,两个元素都是字符串类型。现已知该20个学生子列表已按学号递增序排好序。请设计一个程序,使用折半查找算法通过最少次数的比较找到指定学号的学生,如果没有,报告未找到。思路如下:指定查找对象与中值lst[len(lst)-1//2]比较,若小,切片取出左边一半的列表,否则取出右边一半,循环,可以得到查找值。但是出现一个问题,就是列表中最后一个元素就是不行(注释处是我为了糊任务加的),想请教各位大神怎么回事(有认真思考过,但还是不会)