python - 将整数列表转换为字符串作为排序中字典的键

标签 python sorting dictionary

我有一个字典,我想将其用作对列表进行排序的键。

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/

相关文章:

python - 当 IF 语句为假时为变量赋值会导致 Python 出错

algorithm - 如何使用快速排序获取 n 个奇数元素的中位数?

android - 我们如何在 Android 应用程序中提供字典服务?

c# - 从字典中检索原始 key

c++ - 作为键的 vector 如何在 C++ 内部工作?

python - 对 DRF 序列化程序上的 ManyToMany 和 OneToMany 字段使用自定义模型管理器

python - 如何向 argpare 解析器添加更多子解析器?

python - 加速 Numpy 数组/OpenCV cv2 图像的迭代

在 Go 中排序和比较数组

jquery - 排序后的 DataTables.net 自定义字体大小