如何将count,find和zip等列表操作转换为numpy

时间:2015-10-24 10:00:36

标签: python python-3.x numpy find zip

我已经构建了一个扑克牌评估器,并希望将我的代码中的所有内容转换为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)

0 个答案:

没有答案