排序方面的Python列表/元组

2024-10-02 22:29:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力克服Python中的一个问题/任务,我真的被想法困住了。我需要从一个文件中读取两行,对其中一行进行排序(从用户输入的数据确定的多个文件中),但是在一个跑步俱乐部的上下文中返回这两个数据。用户的平均每小时英里数将在几周内计算出来,并存储在一个.txt文件中,同时存储在程序开始时的一个用户id,程序的最后一部分将需要读取这些文件(用户id和平均每小时英里数),并在保留用户id的同时对平均每小时英里数进行排序(两者一起返回,以便进行摘要)。然后我需要说出前几名选手。任何帮助将不胜感激,我没有使用SQL等,只是逐行,标准的Python。我的代码没有经过优化,但我现在对它很在行。另外,我的朋友建议我使用元组,但我不知道从哪里开始诚实。请原谅任何“基本错误”。我也玩过元组,但从来没有正确地整合他们,因为我不知道从哪里开始。还发现了保存变量时与操作符冲突的问题,这意味着如果不定义每个操作符,我就不能将它们全球化。你知道吗

    def retrieve():
global datasave,y ###don't know where to go from this as it does not work
y=1
if y>3: #just practiced with 2 'users'
    y=str(y) 
    print("All members entered and saved, a comparision of average miles per hour will be intiated")
    file=open(y+".txt",'r') #saves files in which they occur for easy 'read'
    datasave=file.readline(5)
    datasave,y=datasave #gave me a 'cannot assign to operator' error
    y=int(y)
    y=y+1
else:
    avmphlist=[datasave1,datasave2,datasave3,datasave4,datasave5,datasave6,datasave7,datasave8,datasave9,datasave10]
    sorted(avmphlist)
    print(avmphlist)
    print("Unfortunately ",avmphlist[9]," and ",avmphlist[10],"have not made the team, thank you for your participation")
    print("Congratulations to ",avmphlist[1],", ",avmphlist[2],", ",avmphlist[3],", ",avmphlist[4],", ",avmphlist[5],", ",avmphlist[6],", ",avmphlist[7]," and ",avmphlist[8],)

Tags: and文件to数据用户程序txtid
1条回答
网友
1楼 · 发布于 2024-10-02 22:29:34

从为数据定义元组列表开始

runnerData = [("TestName1", 70),("TestName2", 50), ("TestName3", 60)]

现在使用inbuild排序方法:

sortedRunnerData = sorted(runnerData, key=lambda data: data[1])

现在您有了数据元组的排序列表(升序)。如果您需要按降序排列,只需反转列表即可:

sortedRunnerData.reverse()

现在列表sortedRunnerData列表按降序包含数据。你知道吗

相关问题 更多 >