你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
mylist = []
with open(r'班级.txt', 'r', encoding='utf-8') as f:
for line in f.readlines():
n,s = line.strip().split(" ")
mylist.append({"学号":int(n),"姓名":s})
print(mylist)
def search(li, item):
for v in li:
if v["姓名"]==item:
return v
return None
def binary_search(li, item):
low = 0
high = len(li) - 1
while low <= high:
mid = (high - low) // 2 + low # 避免(high + low) / 2溢出
guess = li[mid]["学号"]
if guess > item:
high = mid - 1
elif guess < item:
low = mid + 1
else:
return li[mid]
return None
print(search(mylist, "ccc"))
print(binary_search(mylist, 5))