Допустим, у меня есть длинный список этого типа:нахождение частот парных элементов в списке пар
text = [ ['a', 'b'], ['a', 'd'], ['w', 'a'], ['a', 'b'], ... ]
Учитывая первые элементы, я хочу, чтобы построить словарь, который будет показывать счетчик второй элементы. Например, в конкретном примере выше, я хотел бы иметь что-то вроде этого:
{'a': {'b':2, 'd':1},
'w': {'a':1}
}
Вот как я безуспешно пытался решить. Я построил список уникальных первых элементов. Давайте назовем это words
, а затем:
dic = {}
for word in words:
inner_dic = {}
for pair in text:
if pair[0] == word:
num = text.count(pair)
inner_dic[pair[1]] = num
dic[pair[0]] = inner_dic
я получаю явно ошибочный результат. Одна из проблем с кодом заключается в том, что он переопределяет пары. Я не уверен, как это решить.
Использование .count неэффективно –