这个其实很简单,先给你提供下思路,别使用自带 sort() 排序。自己写个排序算法,根据list1分数排序,在排序的过程中同时将list2姓名根据list1的排序算法走一遍,即可得到对等的序列。
#-*- coding:utf-8 -*-
name = ['a', 'b', 'c', 'd', 'e', 'f']
score = [96, 97, 92, 93, 99, 91]
def insert_sort2(num_list, name):
"""
插入排序, 稍微修改之后
"""
for i in range(len(num_list)-1):
for j in range(i+1, len(num_list)):
if num_list[i]>num_list[j]:
num_list[i],num_list[j] = num_list[j],num_list[i]
name[i],name[j] = name[j],name[i]
return num_list,name
print insert_sort2(score, name)
def insert_sort(num_list):
"""
插入排序,正常的
"""
for i in range(len(num_list)-1):
for j in range(i+1, len(num_list)):
if num_list[i]>num_list[j]:
num_list[i],num_list[j] = num_list[j],num_list[i]
return num_list
# 输出: ([91, 92, 93, 96, 97, 99], ['f', 'c', 'd', 'a', 'b', 'e'])
# 使用 list1,list2 = insert_sort(list1, list2) 这样就可以得到了