-3
      NDP_INDEX = 0
      GREEN_INDEX = 1
      LIBERAL_INDEX = 2
      CPC_INDEX = 3

假设有一个常数

      PARTY_INDICES = [NDP_INDEX, GREEN_INDEX, LIBERAL_INDEX, CPC_INDEX]
      INDEX_TO_NAME = {NDP_INDEX: 'NDP', GREEN_INDEX: 'GREEN', LIBERAL_INDEX:'LIBERAL'
                       CPC_INDEX: 'CPC'}
      NAME_TO_INDEX = {'NDP':NDP_INDEX, 'GREEN':GREEN_INDEX, 'LIBERAL':LIBERAL_INDEX,
                        'CPC':CPC_INDEX}


def voting_plurality(votes):

    '''(list of str) -> (list of int)

该参数是单次选票的单一候选人选票列表。

在复数投票中,得票最多的一方赢得席位。我们在起始代码中提供了此函数的标头和文档字符串。

返回一个 int 列表,其中元素是一个四元素列表,其中包含每一方的选票数量。列表元素的顺序对应于 PARTY_INDICES 中各方的顺序。

    >>>voting_plurality(['GREEN', 'GREEN', 'NDP', 'GREEN', 'CPC'])
    [1,3,0,1]
    '''

    party_list = [0, 0, 0, 0]
    #These Gaps need filled out


    return party_list

不使用枚举或 lambda 等导入程序并使用字典 INDEX_TO_NAME 和 NAME_TO_INDEX,我需要输出 [1,3,0,1] 并且输出为 [1,3,0,1] 是因为有 3 'GREEN' 投票和 'GREEN' 在 PARTY_INDICES 的索引中排名第二,有 1 个 'NDP' 投票和 'NDP' 在 PARTY_INDICES 的索引中排名第一,没有'Liberal' 投票并且'Liberal' 在 PARTY_INDICES 的索引中排名第三PARTY_INDICES 的索引,并且有 1 个“CPC”投票,并且“CPC”在 PARTY_INDICES 的索引上排在最后。party_list 被创建,用于根据 PARTY_INDICES 的索引统计投票数。

输出需要为 [1,3,0,1],我希望这对人们更有意义。请帮忙。谢谢

4

1 回答 1

0

如果我正确理解问题,我认为这应该有效

def voting_plurality(votes):
    party_list = [0, 0, 0, 0]

    for i in range(len(votes)):
        if votes[i] in NAME_TO_INDEX:
            party_list[NAME_TO_INDEX[votes[i]]] += 1

    return(INDEX_TO_NAME[index_to_max(party_list)], party_list)
于 2012-12-12T06:19:13.740 回答