我有一个代表卡的对象列表,每张卡具有西服和值属性,如何使用自定义优先级对它们进行排序(如下所示)
这是我的自定义优先级: 优先级= {“ 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}
我想按对象的值对它们进行排序
我该怎么做?
答案 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))