使用元组作为浮点数为负的排序键可以反转顺序:
>>> li=[(('D','A'),0.0),(('D','C'),0.0),(('D','E'),0.5)]>>> sorted(li, key=lambda t: (-t[-1],t[0]))[(('D', 'E'), 0.5), (('D', 'A'), 0.0), (('D', 'C'), 0.0)]如果您不能进行求反(例如对字符串或字母值或非数字值),则可以利用Python sort函数稳定的事实,并分两步进行排序:
>>> li=[(('D','A'),'A'),(('D','C'),'A'),(('D','E'),'C')]>>> sorted(sorted(li), key=lambda t: t[-1], reverse=True)[(('D', 'E'), 'C'), (('D', 'A'), 'A'), (('D', 'C'), 'A')]


