Определить в каких текстах встречается слово

Имеется словарь вида:

texts = {0: "какой-то текст", 1: "какой-то текст", 2: "какой-то текст", 3: "какой-то текст"}

Необходимо создать словарь, в котором будут указаны слово, как часто оно повторяется и в каких текстах, например:

result = {"word": "текст", "count": 4, "id": [0, 1, 2, 3]}

Заранее благодарю за помощь


Ответы (2 шт):

Автор решения: Edward Grachev

Counter считает кол-во повторений в списке.

from collections import Counter
    
    texts = {10: "Вот и все", 0: "какой-то текст", 1: "какой-то текст", 2: "какой-то текст", 3: "какой-то текст"}
    new = Counter(texts.values())
    result = []
    for key, count in new.items():
        lst = []
        for id, value in texts.items():
            if key == value:
                lst.append(id)
        result.append({"word": key, "count": count, "id": lst})
    print(result)
→ Ссылка
Автор решения: Danis
def f(texts, word):
    res = {"word":word, "count":0, "id":[]}
    
    for key, value in texts.items():
        n = value.count(word)
        if n:
            res["count"] += n
            res["id"].append(key)
    return res
texts = {0: "какой-то текст", 1: "какой-то текст", 2: "какой-то текст", 3: "какой-то текст"}
print(f(texts, "текст"))
→ Ссылка