2015-02-07 79 views
0

我在命名问题的标题时遇到了困难,因为您可以告诉..无论如何,要将问题放入一些上下文中:我有一个高分的文本文件,数据已放入列入清单。每个人的分数已经排序,所以他们现在从最低到最高排列。Python - 索引,比较和追加

data = [['Stuart', 'got', 'a', 'highscore', 'of:', '92'], [ 'Steve', 
     'got', 'a', 'highscore', 'of:', '53'], ['Andrew', 'got', 'a', 
     'highscore', 'of:', '73'], ['Luke', 'got', 'a', 'highscore', 
     'of:', '1'], [ 'Shaney', 'got', 'a', 'highscore', 'of:', '77'], 
     ['Robert', 'got', 'a', 'highscore', 'of:', '33'], ['Moley', 
     'got', 'a', 'highscore', 'of:', '6'], [ 'Kev', 'got', 'a', 
     'highscore', 'of', '2322']] 
numbers = [1, 6, 33, 53, 73, 77, 92, 2322] 
temp = [] 

我的目标,以创建一个名为“TEMP”列表包含有序数据。 “有序数据”将是原始日期,但排列为['Luke', 'got', 'a', 'highscore', 'of:', '1']将位于“温度”列表的开头。

像往常一样,任何反馈,将帮助我将不胜感激。

回答

3
temp = sorted(data, key= lambda s: int(s[-1])) 

我认为这会工作,虽然

+0

它只是被转换成一个整数。尽管非常感谢答复,但我真的很久以来都在努力想出来,非常感谢他。 – Shaney96 2015-02-07 18:14:46

3

排序确保将强制转换为int或 “100000” 我没有测试它会 “2” 之前进行排序:

print(sorted(data,key=lambda x:int(x[-1]))) 

如果你真的想在输出列表中存储最后一项作为int:

temp = [x[:-1]+[int(x[-1])] for x in sorted(data,key=lambda x:int(x[-1]))] 
+1

@BhargavRao,加上 – 2015-02-07 18:16:23

+1

Typo ... * to * .. – 2015-02-07 18:16:56

+0

@BhargavRao LMAO。我正在考虑同样的事情......但我不想说这个......无论如何,+1是完整的答案。 – Eithos 2015-02-07 18:17:21