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"]]
优先考虑
{'excellent':4, 'good':3, 'average':2, 'bad':1}
list.sort(key=lambda x: (x[3], -x[2], -x[1]))
list.sort(key=lambda x: (x[2], x[0], -x[1]))
list.sort(key=lambda x: (x[2], -x[3], x[0]))
这些都起作用了。你知道吗
但上面说
TypeError: bad operand type for unary -: 'str'
在第一个位置放负号的时候。你知道吗
ie公司
list.sort(key=lambda x: (-x[3], x[2], x[1]))
为什么????你知道吗
您的方法的问题是
x[3]
是一个字符串,因此执行-x[3]
是没有意义的。你知道吗我不确定是否有更简单的解决方案,但您可以使用^{} ,并定义自己的反向
key
函数:结果:
请注意,如果您使用的是Python2,那么只需编写:
如果不想根据几个键进行排序,正确的方法是使用
reverse
参数:相关问题 更多 >
编程相关推荐