我有一个dict,我想用它作为排序列表的键。
names = {'a': 1, 'b': 0, 'c': 2, 'd': 3, 'e': 4, 'f': 5,}
nodes = {'0': 'b', '1': 'a', '2': 'c', '3': 'd', '4': 'e', '5': 'f'}
l1 = [0, 1, 2, 3, 4]
l1.sort(key=names.get)
我想要的是L1 [1, 0, 2, 3, 4]
。
显然排序行不起作用,因为数字不是dict的正确键。
我已经获得了节点,所以我的想法是将L1转换为字符串值,使用生成的字符串作为排序的关键,但我不知道该怎么做。
我可以在某种大型循环中做到这一点,但我试图学习python,并且我确信有更多的pythonic方法可以做到。
答案 0 :(得分:3)
您可以将 lambda 表达式写为键:
l1.sort(key=lambda x: nodes.get(str(x))) # convert the int to str here
l1
# [1, 0, 2, 3, 4]