【发布时间】:2014-03-23 03:59:38
【问题描述】:
我是一名计算机专业的学生,发布了a question here the other day about helping me with my function to sort scores in order,我得到了一些很大的帮助,现在它可以工作了,但我也希望它根据分数对名字进行排序(所以如果 James 得到 10,那么它会打印“James 10 “。现在发生的事情是分数正在正确排序并打印到屏幕上,但名称只是按照输入的顺序打印。我试过这个:
def sortlist():
global scorelist, namelist, hss
namelist = []
scorelist = []
hs = open("hstname.txt", "r")
namelist = hs.read().splitlines()
hss = open("hstscore.txt","r")
for line in hss:
scorelist.append(int(line))
switched = True
while switched:
switched = False
for i in range(len(scorelist)-1):
for j in range(len(namelist)-1):
if scorelist[i] < scorelist[i+1]:
scorelist[i],scorelist[i+1] = scorelist[i+1],scorelist[i]
namelist[j],namelist[j+1] = namelist[j+1],namelist[j]
switched = True
分数部分工作正常,我花了很长时间才得到它,而且我不允许使用像 .sort() 这样的预定义函数。任何人都可以提供任何帮助/建议吗?或者,如果您能看到我做错了什么,那么您能提供解决方案吗?我这辈子都搞不定
【问题讨论】:
-
您需要 2 个列表还是可以将它们合并为一个?
-
@IanAuld 我最初有一个列表,但在这个项目的过程中,我将它分成了两个列表,我更愿意保持这样,因为我理解它,现在去太晚了改变太多东西
标签: python list sorting file-handling