我正在尝试对 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/