python: цикл for не различает действия - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть список списков prova. Каждый список имеет несколько элементов (словарь, строка, список).

В частности, у меня есть словарь, подобный этому:

wordDict={'sky':0, 'blue':0,'water':0,...}

со всеми словами, которые находятся внутри документа отзывов.

Я хочу заполнить wordDict для каждого отзыва, я пробовал следующим образом:

for i in range(len(prova)):
  for word in prova[i][4]:
    prova[i][1][word] += 1

prova[i][4]: это место, где есть список со всеми словами обзора;

prova[i][1]: это место, где есть словарь, wordDict.

В результате он заполняет каждый wordDict, но со всеми словами всех разных обзоров, поэтому у меня все списки с одинаковыми wordDict s.

Вместо этого я хочу, чтобы каждый wordDic т, для каждого обзора, заполнялся только словом этого обзора, настолько отличным друг от друга.

1 Ответ

0 голосов
/ 29 апреля 2018

дан словарь слов:

word_dict = {'sky': 0, 'blue': 0, 'water': 0}

Приведен список отзывов:

reviews = [
    "the sky is wet water is blue",
    "ice blue silver sky fades into grey",
    "take a look to the sky just before you die"
]

Мы можем разбить каждый отзыв на список слов:

review_words = [r.split(' ') for r in reviews]

И подсчитайте вхождение соответствующих слов для каждого отзыва:

review_word_dicts = [{k: r.count(k) for k, v in word_dict.items()}
    for r in review_words]

В результате:

>>> review_word_dicts

[{'sky': 1, 'blue': 1, 'water': 1},
 {'sky': 1, 'blue': 1, 'water': 0},
 {'sky': 1, 'blue': 0, 'water': 0}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...