我已经创建了一个列表,其中包含来自python分数文件的所有信息。
分数.txt文件:
Dan Danson,9,6,1
John Johnson,5,7,10
Mike Mikeson,10,7,6
我这样做是为了将信息从.txt文件获取到二维列表中:
f = open(filename, 'r')
lines = f.readlines()
f.close()
scores = []
for line in lines: #Loads lines into a 2d list
currentline = line.strip('\n').split(",")
scores.append(currentline)
现在我有了这个清单:
[['Dan Danson', '1', '6', '9'], ['John Johnson', '5', '7', '10'], ['Mike Mikeson', '10', '7', '6']]
从这个列表中,我想对列表中的数字进行排序,以使它们从最高到最低排序,因此我得到一个看起来像这样的列表:
[['Dan Danson', '9', '6', '1'], ['John Johnson', '10', '7', '5'], ['Mike Mikeson', '10', '7', '6']]
最后,我希望能够打印从高到低排序的列表。
Mike Mikeson,10,7,6
John Johnson,10,7,5
Dan Danson,9,6,1
>>> rows = [
... ['Dan Danson', '1', '6', '9'],
... ['John Johnson', '5', '7', '10'],
... ['Mike Mikeson', '10', '7', '6'],
... ]
>>>
>>> rows = [row[:1] + sorted(row[1:], key=int, reverse=True) for row in rows]
>>> sorted(rows, key=lambda row: sum(map(int, row[1:])), reverse=True)
[['Mike Mikeson', '10', '7', '6'],
['John Johnson', '10', '7', '5'],
['Dan Danson', '9', '6', '1']]
sorted(row[1:], ..)
:单独的数字值和排序。row[:1]
:名称作为列表,也可以使用[row[0]]
。应该是要连接到数字字符串列表的列表。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句