次のコードで、コードが正しく繰り返されないのはなぜですか?おそらく1行欠落していますが、なぜそれが機能しないのか理解できません。
次のテストケースの関数があります。
>>> borda([['A', 'B', 'C', 'D'], ['B', 'A', 'C', 'D'], ['B', 'C', 'D', 'A']])
('B', [5, 8, 4, 1])
パラメータ内のリストがランキングである場合、各#1ランクは3ポイント、#2は2ポイント、#3は1ポイントを取得し、他のランクは何も取得しません。必ずしも4つの選択肢があるとは限りません。タプルの最初の要素はポイント数が最も多い選択肢であり、2番目の要素は各選択肢がアルファベット順に取得したポイント数です。
関数は完成していませんが、アルファベット順のキーとして選択肢の辞書を取得し、値としてランキングの数を取得しようとしていますが、出力は、の最後の要素のみの辞書です。パラメータの最後のリスト。
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