2016-11-28 4 views
-2

Я пытаюсь настроить набор данных, который проверяет, как часто упоминаются несколько разных имен в списке статей. Поэтому для каждой статьи я хочу знать, как часто упоминаются имена A, nameB и т. Д. Однако у меня проблемы с повторением списка.Итерации над списком строк в python

Мой код выглядит следующим образом:

for element in list_of_names: 
for i in list_of_articles: 
    list_of_namecounts = len(re.findall(element, i)) 
  1. LIST_OF_NAMES = строка с несколькими именами [НАМЕА NAMEB НАМЕК]
  2. list_of_articles = список с 40,000 строк, которые являются статьи

Пример статьи в списке:

  1. индекс: 1
  2. Тип: ул
  3. Размер: Амстердам - ​​де financiële ...

ошибка я получаю: ожидается строка или буфер

я, хотя, что при переборе над список строк, что команда re.findall должна работать с такими списками, но я также довольно новичок в Python. Любая идея, как решить мою проблему здесь?

Спасибо!

+0

're' означает регулярное выражение. Вы не используете регулярные выражения. Вы ищете 'filter'. – trincot

+0

Какой тип элемента? Какой тип я? Отлаживайте его каким-то образом, возможно, используя печать. – Moberg

+0

Не могли бы вы предоставить нам часть 'list_of_articles' –

ответ

0

Если ваш список [ 'яблоко', 'яблоко', 'банан'], и вы хотите, чтобы результат: количество яблок = 2, то:

from collections import Counter 

list_count = Counter(list_of_articles) 

for element in list_of_names: 
    list_of_namecounts = list_count[element] 

И если предположить list_of_namecounts список ¿?

list_of_namecounts = [] 
for element in list_of_names: 
    list_of_namecounts.append(list_count[element]) 

See this for more understanding

+2

Нет причин перестраивать' Counter' для каждого имени. Конструктор должен находиться вне цикла. –

+0

Исправлено, слишком быстро :) – EmilioK

+0

Спасибо Patrick Haugh и EmilioK. Я попробовал команду, но она дает мне общее количество упоминаний, а не число для каждой статьи. Это верно? Если да, смогу ли я адаптировать код, чтобы получить счет для каждой строки (= статьи) в списке__группы? –