【发布时间】:2016-05-19 20:10:28
【问题描述】:
我正在尝试对 python 字符串列表进行排序。我知道我可以使用 sorted 方法并将属性键设置为实现对字典元素进行排序所需的行为的函数。我的问题是这个方法需要一个参数。
更新: 我希望该方法可以推广到多个参数。
示例: 我想根据 2 个字典中的优先级对字符串列表进行排序。所以我需要使用那些优先级字典来对列表进行排序。
我想要类似的东西:
sorted(myList, key=sortingAlgorithm(priorityDictionary1, priorityDictionary2), reverse=True)
如果我将优先级字典设置为全局变量,则可以做到这一点,然后我不需要将它作为排序算法的参数。但是,我希望能够在没有全局变量的情况下做到这一点。
如果这是不可能的,你能推荐一下pythonic的方法吗?
提前致谢。
【问题讨论】:
-
你知道函数可以返回函数,对吧?
-
您的代码中的
sortingAlgorithm()是什么?sorted()函数有自己的排序算法,它需要的指令是与其他项目相比,每个项目应该去哪里。Key=需要是“一个接受列表项并返回数字/字符串/可排序值的函数”。随着答案的出现,有很多方法可以解决这个问题 - 但没有一种方法涉及传递排序算法来排序...... -
两个值是结合在一起还是第二个是决胜局?
-
@PadraicCunningham 两个值合并
-
@Hossam,所以
dict1[x] + dict2[x]或dict2[dict1[x]]?