def voting_borda(rank_ballots):
'''(list of list of str) -> tuple of (str, list of int)
パラメーターは、1 回の乗馬のランク投票を表す 4 要素リストのリストです。
ボルダカウントは、ランキングに応じてポイントを割り当てて決定されます。パーティーは、第 1 選択のランキングごとに 3 ポイント、第 2 選択のランキングごとに 2 ポイント、第 3 選択のランキングごとに 1 ポイントを獲得します。(4 位にランクされてもポイントは与えられません。) たとえば、上記のランク投票では、リベラル カウントに 3 ポイント、グリーン カウントに 2 ポイント、CPC カウントに 1 ポイントが貢献します。最も多くのポイントを獲得したパーティーが議席を獲得します。
最初の要素が Borda Count に従って勝ったパーティーの名前で、2 番目の要素が各パーティーの合計ポイント数を含む 4 要素のリストであるタプルを返します。リスト要素の順序は、PARTY_INDICES の当事者の順序に対応しています。
#>>> voting_borda([['GREEN','NDP', 'LIBERAL', 'CPC'], ['GREEN','CPC','LIBERAL','NDP'],
['LIBERAL','NDP', 'CPC', 'GREEN']])
#('GREEN',[4, 6, 5, 3])
list_of_party_order = []
for sublist in rank_ballots:
for party in sublist[0]:
if party == 'GREEN':
GREEN_COUNT += 3
elif party == 'NDP':
NDP_COUNT += 3
elif party == 'LIBERAL':
LIBERAL_COUNT += 3
elif party == 'CPC':
CPC_COUNT += 3
for party in sublist[1]:
if party == 'GREEN':
GREEN_COUNT += 2
elif party == 'NDP':
NDP_COUNT += 2
elif party == 'LIBERAL':
LIBERAL_COUNT += 2
elif party == 'CPC':
CPC_COUNT += 2
for party in sublist[2]:
if party == 'GREEN':
GREEN_COUNT += 1
elif party == 'NDP':
NDP_COUNT += 1
elif party == 'LIBERAL':
LIBERAL_COUNT += 1
elif party == 'CPC':
CPC_COUNT += 1
リストの各インデックスにポイントを与える方法がわかりません。誰か助けてくれませんか?複雑になりすぎずに。ありがとうございました!