Для получения окончательного результата вы можете использовать setdefault :
data = {('know', 'you'): 1053, ('know', 'i'): 847, ('il', 'i'): 784, ('want', 'to'): 680, ('want', 'you'): 561,
('il', 'you'): 561, ('come', 'on'): 557, ('know', 't'): 499, ('go', 'to'): 447, ('right', 'all'): 440,
('want', 'i'): 430, ('know', 'don'): 410, ('get', 'to'): 409, ('like', 'you'): 397, ('like', 'i'): 338,
('get', 'you'): 336, ('il', 'be'): 330}
result = {}
for k, v in data.items():
result.setdefault(k[0], []).append(v)
print([e for e in result.values()])
выход
[[561, 680, 430], [447], [397, 338], [440], [847, 1053, 499, 410], [336, 409], [784, 561, 330], [557]]
Если по какой-то причине вам требуется промежуточное представление, вы можете сделать следующее:
from itertools import groupby
data = {('know', 'you'): 1053, ('know', 'i'): 847, ('il', 'i'): 784, ('want', 'to'): 680, ('want', 'you'): 561,
('il', 'you'): 561, ('come', 'on'): 557, ('know', 't'): 499, ('go', 'to'): 447, ('right', 'all'): 440,
('want', 'i'): 430, ('know', 'don'): 410, ('get', 'to'): 409, ('like', 'you'): 397, ('like', 'i'): 338,
('get', 'you'): 336, ('il', 'be'): 330}
result = [dict(group) for _, group in groupby(sorted(data.items()), key=lambda x: x[0][0])]
print(result)
Вывод ( промежуточное представление )
[{('come', 'on'): 557}, {('get', 'to'): 409, ('get', 'you'): 336}, {('go', 'to'): 447}, {('il', 'i'): 784, ('il', 'be'): 330, ('il', 'you'): 561}, {('know', 'i'): 847, ('know', 't'): 499, ('know', 'you'): 1053, ('know', 'don'): 410}, {('like', 'i'): 338, ('like', 'you'): 397}, {('right', 'all'): 440}, {('want', 'i'): 430, ('want', 'you'): 561, ('want', 'to'): 680}]