我有一个字典,我想将其用作对列表进行排序的键。
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]
。
显然,排序行不起作用,因为数字不是字典的正确键。
我已经有了节点,所以我的想法是将 L1 转换为字符串值,使用结果字符串作为排序的键,但我只是不知道该怎么做。
我可以在某种大型循环中做到这一点,但我正在尝试学习Python,并且我确信有一种更Pythonic的方法来做到这一点。
最佳答案
您可以编写一个 lambda 表达式作为键:
l1.sort(key=lambda x: nodes.get(str(x))) # convert the int to str here
l1
# [1, 0, 2, 3, 4]
关于python - 将整数列表转换为字符串作为排序中字典的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42262529/