私はこの問題を適切に定式化する方法に固執しており、以下は次のとおりです。
次の値がある場合はどうなりますか。
{('A','B','C','D'):3,
('A','C','B','D'):2,
('B','D','C','A'):4,
('D','C','B','A'):3,
('C','B','A','D'):1,
('C','D','A','B'):1}
1位の値を合計すると:[5,4,2,3](5人が最初にAを選び、4人が最初にBを選んだ、というようにA = 5、B = 4、C = 2、D = 3)
アルファベットの最大値は5で、過半数ではありません(5/14は半分未満です)。ここで、14は合計値の合計です。
そのため、1位のピックが最も少ないアルファベットを削除します。この場合はCです。
{'A':5, 'B':4, 'C':2, 'D':3}
何もインポートせずに辞書を返したい。
これは私の仕事です:
def popular(letter):
'''(dict of {tuple of (str, str, str, str): int}) -> dict of {str:int}
'''
my_dictionary = {}
counter = 0
for (alphabet, picks) in letter.items():
if (alphabet[0]):
my_dictionary[alphabet[0]] = picks
else:
my_dictionary[alphabet[0]] = counter
return my_dictionary
これは、私が取り除くことができないキーの重複を返します。
ありがとう。