2013-03-31 3 views
-1
나는이 결과를 얻고 싶은
vote(['G', 'G', 'N', 'G', 'C']) 

: ('G', [1, 3, 0, 1])파이썬 목록 투표 ([ 'G', 'G', 'N', 'G', 'C'])

g_count = 0 
n_count = 0 
l_count = 0 
c_count = 0 
for i in range(len(ballots)): 
    if ballots[i] == 'G': 
     g_count += 1 
    elif ballots[i] =='N': 
     n_count += 1 
    elif ballots[i] == 'L': 
     l_count +=1 
    else: 
     c_count += 1 

return [n_count,g_count,l_count,c_count] 

을 어떻게 할 앞쪽에 'G'를 붙이세요? 이 같은

+0

당신은 넥타이를 어떻게 처리 할 것을 제안합니까? 그리고'dict'은 여러분이 여기에서 원하는 것처럼 보입니다. –

+0

http://stackoverflow.com/questions/15732496/trying-to-fix-my-function에 관계가 있습니까? – YXD

+3

[GREEN NDP CPC] (http://stackoverflow.com/search?q=GREEN+NDP+CPC) - 캐나다 정당의 이름 (여기에서 "L"은 " Liberal ") - StackOverflow에서 많은 질문을 많이 봅니다. 어쩌면 어딘가에서 파이썬의 보르 다 (Borda) 카운트와 같은 항목을 포함하는 투표 질문을 초급 과제로 할당하기 때문일 수 있습니다. – DSM

답변

1

뭔가 :

여기
In [9]: from collections import Counter 

In [15]: def vote(lis): 
    ....:  c=Counter(lis) 
    ....:  return c.most_common()[0][0],[c[x] for x in "NGLC"] 
    ....: 

In [16]: vote(['G', 'G', 'N', 'G', 'C']) 
Out[16]: ('G', [1, 3, 0, 1]) 

In [17]: vote(['G', 'G', 'N', 'G', 'C','L','L']) 
Out[17]: ('G', [1, 3, 2, 1]) 

In [18]: vote(['G', 'L', 'N', 'G', 'C','L','L']) 
Out[18]: ('L', [1, 2, 3, 1]) 

c.most_common() 반환 [('G', 3), ('C', 1), ('N', 1)], 당신은 'G'를 얻을 수있는이에서.