0
爲了構建我的撲克遊戲,我抽象出一個「手」作爲card
對象的列表。
例如,['AC', '3D', '4S', 'KH', 'TC']
代表hand
對象,並且列表中的每個項目都是card
對象。將字符串映射爲Python中的整數
我想按照遊戲中重要性的降序排列牌。
即'A' > 'K' > ....(so on)... > '2'
我尋找每個卡的秩映射到相應的值。
對於上面的例子中,對應將[14, 13, 10, 4, 3]
我有以下功能爲我做到這一點:
def mapper(ranks):
mapping = {
'2': 2,
'3': 3,
'4': 4,
'5': 5,
'6': 6,
'7': 7,
'8': 8,
'9': 9,
'T': 10,
'J': 11,
'Q': 12,
'K': 13,
'A': 14
}
new_ranks = [mapping[rank] for rank in ranks]
return new_ranks
def card_ranks(cards):
"Return a list of the ranks, sorted with higher first."
ranks = [r for r,s in cards]
return sorted(mapper(ranks), reverse=True)
這些功能很好地工作,但我不覺得他們足夠的Python的。
我想知道如何有效地執行此映射(可能使用map
函數)。
[CodeReview.SE]可能是這是一個更好的地方。 – Ryan