【发布时间】:2014-02-06 10:45:09
【问题描述】:
我认为这是一个具有挑战性的...
list = [["hasan",6,"bad","chennai"],
["vishnu",7,"good","chennai"],
["tabraiz",8,"good","bangalore"],
["shaik",5,"excellent","chennai"],
["mani",6,"avarage","kerala"],
["cilvin",9,"excellent","chennai"]]
我把差1分,一般2分,好3分,优秀4分。 考虑到默认函数的 1,2 或 3 索引,我得到了升序排序的输出。
考虑 1 个索引 -- 第一级排序
list.sort(key= lambda x: x[3])
输出==>
for i in list:
print i
['tabraiz', 8, 'good', 'bangalore']
['hasan', 6, 'bad', 'chennai']
['vishnu', 7, 'good', 'chennai']
['shaik', 5, 'excellent', 'chennai']
['cilvin', 9, 'excellent', 'chennai']
['mani', 6, 'avarage', 'kerala']
考虑2个索引——二级排序:
list.sort(key= lambda x: (x[3],x[2])
输出==>
['tabraiz', 8, 'good', 'bangalore']
['hasan', 6, 'bad', 'chennai']
['vishnu', 7, 'good', 'chennai']
['shaik', 5, 'excellent', 'chennai']
['cilvin', 9, 'excellent', 'chennai']
['mani', 6, 'avarage', 'kerala']
考虑3个索引——3级排序
list.sort(key= lambda x: (x[3],x[2],x[1])
输出==>
['tabraiz', 8, 'good', 'bangalore']
['hasan', 6, 'bad', 'chennai']
['vishnu', 7, 'good', 'chennai']
['shaik', 5, 'excellent', 'chennai']
['cilvin', 9, 'excellent', 'chennai']
['mani', 6, 'avarage', 'kerala']
这些排序是按升序排列的。
我想要一些升序和一些降序。
例如,如果我想输出降序排列的第 3 个索引、升序排列的第 2 个索引和降序排列的第 1 个索引。
我应该怎么做???
['mani', 6, 'avarage', 'kerala']
['hasan', 6, 'bad', 'chennai']
['vishnu', 7, 'good', 'chennai']
['cilvin', 9, 'excellent', 'chennai']
['shaik', 5, 'excellent', 'chennai']
['tabraiz', 8, 'good', 'bangalore']
【问题讨论】:
-
请格式化您的问题以使其可读。用四个空格缩进代码。
-
您的预期输出与描述不符。请澄清。