排序方面的Python列表/元组

时间:2015-03-31 16:47:26

标签: python sorting tuples

我正在努力克服Python中的问题/任务,而且我真的很难接受想法。我需要从文件中读取两行,对这些行中的一行(来自用户输入数据确定的多个文件)进行排序,但在运行的俱乐部的上下文中返回两个数据。用户平均每小时英里数将在几周内计算并存储在.txt文件中,并与存储在程序开头的用户ID一起存储,程序的最后一部分将需要读取这些文件(用户ID和平均每小时英里数)并在保持用户ID的同时对每小时的平均英里数进行排序(将两者一起返回以允许摘要)。然后,我需要说明前几名选手。任何帮助将非常感激,我没有使用SQL等,只是逐行,标准的Python。我的代码未经优化,但我在家中直接使用了#39;现在用它。另外,我的朋友建议我使用元组,但我不知道从哪里开始诚实。请原谅任何基本错误'。我也玩过元组,但从未正确地整合它们,因为我不知道从哪里开始。同时发现保存变量的问题与操作符发生冲突,这意味着我无法在不定义每个人的情况下对其进行全球化。

    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],)

1 个答案:

答案 0 :(得分:1)

首先为您的数据定义元组列表

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

现在使用inbuild排序方法:

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

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

sortedRunnerData.reverse()

现在列表sortedRunnerData列表按降序包含数据。