python - 使用包含字典值的元素对列表进行排序

标签 python list sorting dictionary

我正在尝试制作一个带有卡片等级的排序系统,它们的值是从一个单独的字典中获得的。在一副简单的 52 张牌中,我们有 2 到 A 等级,在这种情况下,我想要一个排名系统,其中 0 是 10,J 是 11,Q 是 12,K 是 13,A 是 14,2 是 15,其中 2 是最大的值(value)排名。问题是,如果有一个列表,我想根据编号系统以 ASCENDING 顺序对排名卡进行排序,我该怎么做?

比如这里有一个列表,[3,5,9,7,J,K,2,0],我想把列表排序成[3,5 ,7,9,0,J,K,2]。我还为编号系统制作了一个字典 {'A': 14, 'K': 13, 'J': 11, 'Q': 12, '0': 10, '2': 15}

谢谢

最佳答案

这个答案有效:

    sorted(list_for_sorting, key=dictionary_you_wrote.__getitem__)

这也是:

    sorted_list = sorted(unsorted_list, key = lambda k: your_dictionary[k])

sorted 函数使用第一个参数(您要排序的对象)中的每个条目来调用第二个参数。这样,lamda 函数会从字典中返回给定项目的值,并且可以将其用作键进行排序。

如果任何列表条目不在 your_dictionary.keys() 中,这将不起作用。完成字典或使用

    sorted(unsorted_list, key = lambda k: your_dictionary[k] if k in your_dictionary.keys() else k)

关于python - 使用包含字典值的元素对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10569853/

相关文章:

python - 使用 apply 使用特定函数快速填充 pandas 数据框的列?

android - 按下后退按钮时调用方法

python - 将 Pandas 单元格中的列表拆分为多列

php - 未分析Elasticsearch无法在排序中工作

python - 为什么在 python 中使用 sorted 函数进行多级排序会得到错误的答案?

python - 如何使用 systemd 永远运行 python 脚本并在树莓派 3 上中途死掉时重新启动?

python - 在 xarray 中替换数据集坐标 (Python)

algorithm - 使用贪婪耐心排序证明最长递增子序列

python - CFFI : TypeError: initializer for ctype 'char[]' must be a bytes or list or tuple, 不是 str

python - 将字符串数组中的元素输出到句子