使用客户优先级按属性对列表进行排序

时间:2020-03-23 09:24:58

标签: python-3.x

我有一个代表卡的对象列表,每张卡具有西服和值属性,如何使用自定义优先级对它们进行排序(如下所示)

这是我的自定义优先级: 优先级= {“ 2”:0,“ 3”:1,“ 4”:2,“ 5”:3,“ 6”:4,“ 7”:5,“ 8”:6,“ 9”:7 ,“ 10”:8,“ 11”:9,“ 12”:10,“ 13”:11,“ 1”:12}

我想按对象的值对它们进行排序

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以在以下几行中使用sort with a key function

cards.sort(key=lambda c: priority[c.value])

如果您要优先考虑,

cards.sort(key=lambda c: priority[c.value], reverse=True)

添加西装后,将键设置为元组:

cards.sort(key=lambda c: (priority[c.value], card.suit))