我有一个元组列表:y2 = SSasympOrig(x2, Asym=10, lrc=0.1)
# Asym*(1 - exp(-exp(lrc)*input))
plot(y2 ~ x2, type="l")
points(x = log(2) / exp(0.1), y = 0.5 * 10)
我想以两种方式对此列表进行排序:
首先按升值增加第一个值,即[(2, Operation.SUBSTITUTED), (1, Operation.DELETED), (2, Operation.INSERTED)]
其次是反向字母顺序的第二个值,即1, 2, 3... etc
所以上面的列表应该排序为:
Operation.SUBSTITITUTED, Operation.INSERTED, Operation, DELETED
如何排序此列表?
答案 0 :(得分:4)
由于排序为guaranteed to be stable,您可以分两步完成:
f56fhj => no whitespace
o9f g66ff o => whitespace
答案 1 :(得分:2)
在这种特殊情况下,因为比较的顺序可以很容易地反转为整数,你可以使用负值对整数键进行一次排序&反向:
lst = [(2, 'Operation.SUBSTITUTED'), (1, 'Operation.DELETED'), (2, 'Operation.INSERTED')]
res = sorted(lst, key=lambda x: (-x[0],x[1]), reverse=True)
结果:
[(1, 'Operation.DELETED'), (2, 'Operation.SUBSTITUTED'), (2, 'Operation.INSERTED')]
取消整数键取消“反向”方面,仅保留第二个字符串标准。
答案 2 :(得分:0)
使用itemgetter
模块中的operator
的另一种方式:
WinWaitActive("File Upload") // enter the title of the pop up
Send("Path of the file to enter") // enter the path of the file to upload
Send("{ENTER}") / press enter
答案 3 :(得分:0)
您可以使用:
from operator import itemgetter
d = [(1, 'DELETED'), (2, 'INSERTED'), (2, 'SUBSTITUTED')]
d.sort(key=itemgetter(1),reverse=True)
d.sort(key=itemgetter(0))
print(d)