2016-11-28 11 views
-2

記事のリストにいくつかの異なる名前がどのくらいの頻度で含まれているかを調べるデータセットを設定しようとしています。だから各記事では、nameA、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 =いくつかの名前[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

名前ごとに' Counter'を再構築する必要はありません。コンストラクタはループ外にある必要があります。 –

+0

固定、あまりに速い: – EmilioK

+0

ありがとうPatrick HaughとEmilioK。私はコマンドを試しましたが、それは各記事の数ではなく、全体的な数の言葉を私に与えます。あれは正しいですか?もしそうなら、私はlist_of_articles内の各文字列(= article)の数を得るためにコードを適合させることができますか? –

関連する問題