我无法在任何地方找到解决这个问题的方法(我已经检查过许多自定义排序问题)而且我刚刚开始学习Python,如果这是重复或过于具体,请道歉。< / p>
我正在编写一个让用户对抗该程序的纸牌游戏。需要排序的列表是卡片,每张卡片代表两个字符(例如,七个俱乐部的7c
,或十个钻石的Td
。我想安排这些卡片,以便排名按以下顺序排列:3, 4, 5, 6, 7, 8, 9, J, Q, K, A, 2
和T
。
因此,如果我的手牌为['3d', 'Ac', '6h', 'Kd', '2s']
,则会显示为['3d', '6h', 'Kd', 'Ac', '2s']
。
答案 0 :(得分:1)
首先,定义订单。然后按顺序排序:
In [39]: order = "3456789JQKA2T"
In [40]: hand = ['3d', 'Ac', '6h', 'Kd', '2s']
In [41]: hand.sort(key=lambda c:order.index(c[0]))
In [42]: hand
Out[42]: ['3d', '6h', 'Kd', 'Ac', '2s']