-2

How can I accomplish this in Python? Combining Lists of Word Frequency Data

Let's say I have two lists A and B and both contain the words& frequencies of a file in descending frequency order, how can I do what's done in the question in Python?

from FrequentWords import *
from WordFrequencies import * # makes the list with words&frequencies 
L = WordFrequencies('file.txt')
words1 = L[0]
freqs1 = L[1]
L1 = computeWordFrequencies('file1.txt')
words2 = L1[0]
freqs2 = L1[1]
words = zip(*sorted(zip(L,L1)))
both1 = sorted(freqs1+freqs2,reverse=True)
common_words = set(words1) & set(words2)
frequency_common_words = both1
Community
  • 1
  • 1

2 Answers2

4

I'd use collections.Counter:

>>> from collections import Counter
>>> c = Counter()
>>> a = {'a': 2, 'b': 3}
>>> b = {'b': 3, 'c': 4}
>>> c.update(a)
>>> c.update(b)
>>> c
    Counter({'b': 6, 'c': 4, 'a': 2})
Blender
  • 289,723
  • 53
  • 439
  • 496
0

If your starting data is in dictionaries, it's doable:

output_dict = {}
for k, v in first_dict:
    if k in second_dict:
        v = v + second_dict[k]
    output_dict[k] = v

for k, v in second_dict:
    if k not in first_dict:
        output_dict[k] = v
Brenden Brown
  • 3,125
  • 1
  • 14
  • 15