怎样给一个list排序 当按照第一个元素升序排 第一个元素一样的话 按照第2个元素 降序排 ?
a = [(2,3),(4,1),(2,8),(2,1),(3,4)]
怎样遍历一个list 符合下列条件
1. 按照元组的第一个从小到大排序
2. 如果第一个相同 则按照元组第2个从大到小 排序
难点就是第2条
请问大家这怎么弄 ?
谢谢
[解决办法]
性能这玩意还是要用数据说话。
随手写了个:
import time
n = xrange(1000000)
x = zip(n, n)
start = time.time()
x.sort(key = lambda x: (x[0], -x[1]))
end = time.time()
print 'key', end-start
x = zip(n, n)
start = time.time()
x.sort(cmp=lambda x, y: x[0] - y[0] or y[1] - x[1])
end = time.time()
print 'cmp', end-start
key 2.34500002861
cmp 0.269000053406