2017-03-20 2 views
3

점수 업데이트는 사전을 사용하고 (예제 참조) dict 점수의 문자 값에 해당하는 문자열 값으로 다른 dict을 생성합니다. 결과는 Final과 같습니다 (아래 참조). 이것은 내가 지금까지 가지고있는 것이고, 문자열을 반복하여 합계를 계산하는 방법을 잘 모르겠습니다.사전 키의 합계를 계산합니다.

희망 하시겠습니까? 고마워요

Example = {'Dallas':"WWLT", 'Seattle':"LLTWWT"} 
Final = {'Dallas':5, 'Seattle':6} 

def score_updates(weekly_result): 
    Scoring = { 'W': 2, 'T': 1, 'L': 0}  
    d = {} 
    total = 0 
    teams = weekly_result.keys() 
    for t in weekly_result: 
     total += Scoring[t] 
    return d[teams].append(total) 
+0

Dict 이해는 더 파이썬 적입니다. :) – Mangohero1

+0

우리는 모두 같은 것을 테스트 할 수 있도록 실행 가능한 예제로 바꿀 수 있습니까? – tdelaney

답변

0

키와 함께 값을 나열해야합니다. 그럼 그냥 그 번호로 값의 각 문자를 매핑하고 이미 딕셔너리 Scoring했다 가정

def score_updates(weekly_result): 
    Scoring = { 'W': 2, 'T': 1, 'L': 0}  
    d = {} 
    for team, outcomes in weekly_result.items(): 
     d[team] = sum(Scoring[outcome] for outcome in outcomes) 
    return d 

Example = {'Dallas':"WWLT", 'Seattle':"LLTWWT"} 
Final = {'Dallas':5, 'Seattle':6} 

test = score_updates(Example) 
print("Worked?", test == Final) 
3

, 당신은 단지 sum와 DICT 이해를 사용할 수 있다고 요약 할 수 있습니다.

def score_updates(d): 
    return {k: sum(map(Scoring.__getitem__, v)) for k, v in d.items()} 
+0

'.get '에 대한'.__ getitem__'의 선택을 설명 할 수 있습니까? 상대적인 이점이 있습니까? – TemporalWolf

+1

@TemporalWolf'get'은 누락 된 키에 대해'None'을 산출합니다. 문자열에'Scoring'이 아닌 문자가 있다면 합계에'TypeError'를 얻습니다. 반면'__getitem__' 그냥'KeyError'를 발생시킵니다. 나 한테 더 분명해. – miradulo

관련 문제