2016-10-03 26 views
-1

我還沒有找到解決這個問題的任何地方(我查了很多自定義排序問題),我只是剛開始學習Python,如果這是一個重複或太具體的道歉。如何在Python中自定義排序卡列表?

我正在編寫一個卡牌遊戲,用戶正在對該程序進行遊戲。需要排序的列表是手牌,每張牌用兩個字符表示(例如,七個俱樂部的7c,或十個鑽石的Td)。我想安排這些牌,以便隊伍按以下順序排列:3, 4, 5, 6, 7, 8, 9, J, Q, K, A, 2T

因此,如果我有一隻手是['3d', 'Ac', '6h', 'Kd', '2s'],它將顯示爲['3d', '6h', 'Kd', 'Ac', '2s']

回答

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'] 
+0

這樣做!非常感謝。我試過類似的解決方案,但用sort()而不是list.sort()。 –