我已经构建了一个扑克牌评估器,并希望将我的代码中的所有内容转换为numpy:
以下几行排名靠前。它检查卡的价值(元组中的第一个数字然后被拆分为crdRank)以及手中每个卡等级出现的次数(元组中的第二个数字,然后分成得分)。
在避免非numpy操作的同时,在二维numpy数组中获得得分和crdRank的好方法是什么?
crdRanksOriginal = '23456789TJQKA'
originalSuits='CDHS'
hand=['9S', '7H', 'KS', 'KH', 'AH', 'AS', 'AC']
rcounts = {crdRanksOriginal.find(r): ''.join(hand).count(r) for r, _ in hand}.items()
score, crdRank = zip(*sorted((cnt, rank) for rank, cnt in rcounts)[::-1])
result:
rcounts --> dict_items([(11, 2), (12, 3), (5, 1), (7, 1)])
score --> (3, 2, 1, 1)
crdRank --> (12, 11, 7, 5)