私は演習用のコードを書き込もうとしていましたが、正常に機能しているように見えますが、恐ろしいように見えます。必要のないものを削除して、機能の一部を組み合わせるだけでよいのではないかと考えていました。
関数の使用例を次に示します。
choices([['YES', 'NO', 'YES', 'YES'], ['NO', 'NO', 'YES', 'NO'], ['YES', 'YES', 'YES', 'YES']])
リスト内の各リストには、4つのはい/いいえの選択肢があります(以下のインデックスには、緑、赤、青、黄色などの4つのオプションもリストされていますが、4つである必要はありません)。リスト内のリストの数は、投票した人の数です。
i = 0
num = 0
total_num = 0
num_choices = len(INDICES)
choices_index = 0
choices_votes = []
choices_votes_num = []
index = 0
total_choices = []
winning_choice = ''
winning_index = 0
while i < len(parameter):
while num < num_choices:
for item in parameter:
choices_votes.append(item[num])
num += 1
i += 1
while total_num < len(choices_votes):
if choices_votes[total_num] == 'YES':
choices_votes_num.append(1)
total_num += 1
elif choices_votes[total_num] == 'NO':
choices_votes_num.append(0)
total_num += 1
while choices_index < len(choices_votes_num):
count = int(len(choices_votes_num) / num_choices)
total = 0
total = sum(choices_votes_num[choices_index:(choices_index + count)])
total_choices.append(total)
choices_index = choices_index + count
for score in total_choices:
winning_index = max(total_choices)
winning_choice = INDEX_TO_NAME[total_choices.index(winning_index)]
return winning_choice, total_choices
INDEX_TO_NAME
インデックスを選択肢(色)に接続するために設定された単なる辞書です。
基本的に、コードは各yesを1ポイント、各noを0ポイントとしてカウントし、使用可能な各選択肢の合計ポイントを合計して、合計と勝者を返すことになっています。