Один из возможных вариантов в Python , с учетом массивов:
ari1 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'A', 'F', 'C', 'E']
ari2 = ['5', '7', '4', '3', '8', '1', '9', '1', '5', '4', '2']
Создайте dict для расчета суммы для каждой буквы:
from collections import defaultdict
tmp = defaultdict(int)
for a, b in zip(ari1, ari2):
tmp[a] += int(b)
print(tmp)
#=> defaultdict(<class 'int'>, {'A': 6, 'B': 7, 'C': 8, 'D': 3, 'E': 10, 'F': 6, 'G': 9})
Затем соберитеотсортированный список, поскольку словари не содержат порядок:
sorted_tmp = sorted([ [k, v] for k,v in tmp.items() ], key = lambda x: -x[1] )
print(sorted_tmp)
#=> [['E', 10], ['G', 9], ['C', 8], ['B', 7], ['A', 6], ['F', 6], ['D', 3]]
Затем нарежьте список и сформируйте окончательный результат:
res = sorted_tmp[0:3] + [[ 'others', sum([x[1] for x in sorted_tmp[3:]]) ]]
#=> [['E', 10], ['G', 9], ['C', 8], ['others', 22]]