已知列表和字典,列表是需排序元素,字典指明了元素间的优先关系,譬如 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)))
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.