按频率对列表进行排序的好方法是什么?

时间:2014-07-26 19:00:49

标签: python

这是一个奇怪的问题,但无论如何都要进行。

我正在用python编写一个程序,允许用户玩纸牌游戏Go Fish vs a computer AI。如果你不知道在这里钓鱼的规则是指向描述它们的页面的链接。 http://www.classicgamesandpuzzles.com/Go-Fish.html

我正在研究计算机发挥作用的程序。在他们的轮流中,CPU将不得不根据他们手中的内容要求排名(例如,1,2,3 ...... Q,K,A)。我希望计算机询问他们手中已经拥有的数量或等级。为了做到这一点,我希望按照每个等级的数量顺序列出其中的等级列表。例如,手[9D, 6S, KD, 9H, 6D, QC, 9C]会导致计算机创建一个如此的列表。 [9, 6, K, Q] 这样我就可以先让计算机询问列表中的第一项,9,然后如果他们收到它并再转一圈,就会让他们要求下一个最常见的项目,在这种情况下为6。

有没有人对如何订购这样的清单有任何想法,或者是否有另一种更简单的方法来完成同样的事情。

提前致谢。

1 个答案:

答案 0 :(得分:0)

from collections import Counter
cards = ["9D", "6S", "KD", "9H", "6D", "QC", "9C"]
ranks,suites = zip(*cards)
print Counter(ranks).most_common(1)[0]