2014-07-26 3 views
0

이것은 이상한 질문이지만, 어쨌든 간다.빈도별로 목록을 정렬하는 좋은 방법은 무엇입니까?

저는 사용자가 카드 게임 Go Fish 대 컴퓨터 AI를 플레이 할 수있게 해주는 프로그램을 Python으로 작성했습니다. 당신이 여기에 물고기를 갈 규칙을 모르는 경우 그들을 설명하는 페이지에 대한 링크입니다. 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의 첫 번째 항목을 요구할 수 있습니다. 그런 다음 수신하고 다른 차례를 얻으면 다음에 가장 자주 찾는 항목을 묻습니다.

누구나 이와 같은 목록을 주문하는 방법에 대한 아이디어가 있거나 같은 것을 성취하기위한 또 다른 쉬운 방법이 있습니다.

미리 감사드립니다.

답변

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

'카운터 (순위) .most_common (1) [0]'은 약간 깔끔합니다. – jonrsharpe

+0

@jonrsharpe hehe thanks : P 나는 단지 2.6을 사용한다. 나는 카운터 클래스를 갖고 있지 않다 : P –

관련 문제