在下面的代码中,为什么我的代码不能正确迭代?我可能错过了一行,但我不知道为什么它不起作用。
我有以下测试用例的功能:
>>> borda([['A', 'B', 'C', 'D'], ['B', 'A', 'C', 'D'], ['B', 'C', 'D', 'A']])
('B', [5, 8, 4, 1])
其中参数中的列表是排名,每个排名#1 得 3 分,#2 得 2 分,#3 得 1 分,其他排名都没有。不一定有四个选择。元组中的第一个元素应该是得分最高的选项,第二个元素是每个选项得到的点数,按字母顺序排列。
我还没有完成该功能,但我正在尝试获取选择字典作为按字母顺序排列的键和排名计数作为值,但输出是只有最后一个元素的字典参数中的最后一个列表。
L = ['A', 'B', 'C', 'D'] #This is referenced outside the function since it might change
D = {}
i = 0
num = 0
while num < len(L):
num += 1
for choice in L:
while i < len(parameter):
for item in parameter:
if item[0] == choice:
D[choice] = D.get(choice, 0) + 3
if item[1] == choice:
D[choice] = D.get(choice, 0) + 2
if item[2] == choice:
D[choice] = D.get(choice, 0) + 1
i += 1
return D