已知列表和字典,列表是需排序元素,字典指明了元素间的优先关系,譬如 S1 需在 S3 之前,而 S3 又在 S2 之前。
s = ['S1','S2','S3']
val = {('S1','S3'):1,('S3','S2'):1}
希望得到的结果是['S1','S3','S2'],请问有何好的实现方式?
自己想用 python 中的 sort 的 cmp 参数进行排序,结果竟然没排序,不知原因。
from functools import cmp_to_key
s.sort(key=cmp_to_key(lambda x,y: val.get((x,y),0)))