1.我的思路:
首先这里因为数据比较多,所以在接收数据这里就比较重要了。
我第一想到字典,但是字典排序是随机的,我怕顺序出问题,就没有用,虽然它检索比较快。
我打算准考证号,试机座位号,考试座位号均采用列表形式,方便顺序检索。
那么解决问题的方法就是通过 需要查找的试机座位号 去查找 其在 所有试机座位号列表中的索引,然后通过索引找到对应的的准考证号,以及考试座位号;
2.下面是编写代码:
(1)接收数据
count = int(input()) # 学生人数 student_id, test_r, exam_r = [], [], [] # 定义准考证号,试机座位号,考试座位号,方便接收数据 for i in range(count): # 接收每一个学生的准考证号,试机座位号,考试座位号(这里是按顺序接收,保证后续索引正确) stu_id, test, exam = input().split() # 将学生准考证号,试机座位号,考试座位号以空格分开存储 # 分别放到各自的列表中存储 test_r.append(test) student_id.append(stu_id) exam_r.append(exam) find_count = int(input()) # 接收需要查找考试座位号的学生人数 find_test = list(input().split()) # 将这些学生的试机号码存储为列表形式
(2)处理数据
for i in find_test: # 遍历需要查找考试座位号的学生的试机座位号的列表 index = test_r.index(i) # 通过试机座位号查找它在另一个含全部试机座位号的列表的索引 print(student_id[index], exam_r[index]) # 通过查找的索引寻找准考证号以及考试座位号
3.完整代码如下:
count = int(input()) test_r, student_id, exam_r = [], [], [] for i in range(count): stu_id, test, exam = input().split() test_r.append(test) student_id.append(stu_id) exam_r.append(exam) find_count = int(input()) find_test = list(input().split()) for i in find_test: index = test_r.index(i) print(student_id[index], exam_r[index])