Альтернатива более многословна, но легка для понимания.
Сначала поместите списки в содержащий sueperlist:
superlist = [l1, l2]
Затем инициализируйте словарь (word_count
) с необходимыми ключами (каждое слово появляется в списках):
word_count={}
for lst in superlist:
for w in set(lst):
word_count.setdefault(w, list())
Наконец, итерируйте по word_count, подбирая количество найденных слов:
for word in word_count.keys():
for lst in superlist:
word_count[word].append(lst.count(word))
Теперь word_count
содержит:
#=> {'house': [2, 0], 'table': [1, 1], 'desk': [0, 1], 'computer': [0, 1]}
Все в методе для любого номера списка:
def count_words(*superlist):
word_count={}
for lst in superlist:
for w in set(lst):
word_count.setdefault(w, list())
for word in word_count.keys():
for lst in superlist:
word_count[word].append(lst.count(word))
return word_count
print(count_words(l1, l2))
#=> {'table': [1, 1], 'house': [2, 0], 'desk': [0, 1], 'computer': [0, 1]}