これについて本当に助けが必要です
def get_winner (dict_winner):
new_dict = {}
for winner in dict_winner:
first_letter = winner[0]
value = dict_winner[winner]
if first_letter in new_dict:
new_dict[first_letter] += value
else:
new_dict[first_letter] = value
return (new_dict)
get_winner({
('C', 'A', 'B', 'D') :3,
('D', 'B', 'C', 'A') :2,
('C', 'D', 'A', 'B') :1,
('A', 'D', 'B', 'C') :2,
('A', 'D', 'C', 'B') :4,
('A', 'C', 'D', 'B') :2
})
#Outputs {'A': 8, 'D': 2, 'C': 4}
今、結果を str のタプル、NoneType..
また、一番小さい値の文字だけを1回だけ消しています。最終的に1人の勝者が得られるまで、このプロセスを繰り返してほしい. したがって、この場合、出力ではなく、辞書自体ですべての B が削除されます。例えば:
first time = [8, 0, 4, 2]
second time = {
('C', 'A', 'D') :3,
('D', 'C', 'A') :2,
('C', 'D', 'A') :1,
('A', 'D', 'C') :2,
('A', 'D', 'C') :4,
('A', 'C', 'D') :2
})
#Outputs C = 4 D = 2 A = 8
third time= {
('C', 'A') :3,
('C', 'A') :2,
('C', 'A') :1,
('A', 'C') :2,
('A', 'C') :4,
('A', 'C') :2
})
#Outputs C = 6 A = 8
8/14 > 50%、私はそれが最初から当てはまるべきだったことを知ってA
います。しかし、私はA
除去が開始されるべきときである 40% の値を持っていると仮定しています. では、これをコーディングする際にどこが間違っていたのか指摘していただけますか? 例A
では勝者でなければなりません!したがって、出力は ('A', None) になります。