2016-11-28 5 views
-2

기사 목록에 여러 다른 이름이 언급되는 빈도를 확인하는 데이터 세트를 설정하려고합니다. 그래서 각 기사마다 nameA, nameB 등의 언급 빈도를 알고 싶습니다. 그러나 목록을 반복하는 데 문제가 있습니다.파이썬에서 문자열 목록을 반복합니다.

내 코드는 다음과 같다 :

for element in list_of_names: 
for i in list_of_articles: 
    list_of_namecounts = len(re.findall(element, i)) 
  1. LIST_OF_NAMES 여러 이름으로 문자열을 = [nameA nameB nameC]는
  2. list_of_articles 기사

있습니다 40.000 문자열 목록을 = list_of_articles에있는 기사의 예 :

  1. 인덱스 : 1
  2. 유형 : STR
  3. 크기 : 암스테르담 - 드 financiële ...

내가 오류는 다음 반복 때 예상 문자열 또는

내가 그 생각을 버퍼 re.findall 명령은 이와 같은 목록을 사용하여 작동해야하지만, Python에도 상당히 새로운 것입니다. 내 아이디어를 어떻게 해결할 수 있습니까?

감사합니다.

+0

'. 정규식을 사용하고 있지 않습니다. '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 가정 할 목록 ¿입니까? 정규 표현식을 의미 re`

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

See this for more understanding

+2

모든 이름에 대해 '카운터'를 다시 만들 이유가 없습니다. 생성자는 루프 외부에 있어야합니다. –

+0

고정, 너무 빠름 : – EmilioK

+0

감사합니다. Patrick Haugh와 EmilioK. 명령을 시도했지만 각 기사의 번호가 아니라 전체적인 번호를 제공합니다. 그 맞습니까? 그렇다면 list_of_articles 내의 각 문자열 (= article) 수를 얻기 위해 코드를 조정할 수 있습니까? –

관련 문제