Python:排序函数的参数

标签 python sorting

我正在尝试对 Python 字符串列表进行排序。我知道我可以使用 sorted 方法并将属性键设置为实现我需要对字典元素进行排序的行为的函数。我的问题是这个方法需要一个参数。

更新: 我希望该方法泛化到多个参数。

例子: 我想根据 2 个字典中的优先级对字符串列表进行排序。所以我需要使用那些优先字典来对列表进行排序。

我想要这样的东西:

sorted(myList, key=sortingAlgorithm(priorityDictionary1, priorityDictionary2), reverse=True) 

如果我将优先级字典设置为全局变量就可以做到这一点,然后我就不需要将它作为排序算法的参数。但是,我希望能够在没有全局变量的情况下做到这一点。

如果这不可能,请推荐使用 pythonic 的方法。

提前致谢。

最佳答案

试试 key=priorityDictionary.get

get 是字典上的一种方法,它接受一个键并返回一个值(如果找到的话)。

编辑:上述解决方案适用于单个dict 的情况。这是一个概括,其中 priorityDict2 的值是 priorityDict1 的键。

而且,正如 Padriac Cunningham 指出的那样,您可以使用 lambda 来使用嵌套的字典进行排序:

output = sorted(myList, key=lambda element: priorityDict1[priorityDict2[element]])

关于Python:排序函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37333111/

相关文章:

javascript - 如何使用 python 从带有 javascript 的网页中获取表格内容?

javascript - 将 float 作为自然数排序

javascript - lodash sortBy 然后 groupBy,顺序是否保持?

javascript - 如何对 Google Charts 数据表进行排序并将排序扩展到其他列?

python - 为什么使用 numpy.ndarray.astype 将 numpy.ndarray 转换为自定义数据类型会使我的数据相乘?

python - .mat v7.3 文件中 char 和 uint16 编码之间的差异

python - 如何在保持 .py 源代码可编辑的同时将 python 打包为 exe?

python - 在 subprocess.Popen 中使用 && 进行命令链接?

java - 按扩展名和 Java 网站名称的字母顺序对网站名称进行排序

python - 对无序连续整数进行排序的最小交换