2011-09-13 17 views
-1

以下の応答に基づいて編集された質問文字列を数える

私はテキストファイルの中に文字列のリストを持っています。これらの文字列の出現を別のテキストファイルで数えたいと思います。ここで

は、ここにファイルに私が持っている文字列

Red Car 
No lake 
Newjersey turnpike 

の一例である私は、上記の文字列を検索したいテキストファイルです:

I have a red car which I drove on newjersey 
turnpike. When I took exit 39 there was no 
lake. I drove my car on muddy roads which turned my red 
car into brown. Driving on Newjersey turnpike can be confusing. 

私が探しています答え次のとおりです。

これをPythonでどのようにプログラムできますか?あなたの助けをありがとう!ここで

私がこれまで試したものです:

input_file_path = r'input_file.txt' 
phrase_path = r'phrase_words.txt' 
string_count_path =r'string_count.txt' 

f = open(phrase_path,'r') 
lines = f.readlines() 
keys = [] 
for line in lines: 
    key.append(line) 
phrase_word = map(string.strip,map(str.lower,keys)) 
f.close() 

dict={} 
for key in phrase_words: 
    dict[key]=0 
f=open(input_file_path,'r') 
lines = map(string.strip,map(str.lower,f.readlines())) 
for w in lines: 
    try: 
     dict[w] += 1 
    except KeyError: 
     pass 
f.close() 

文字列が適切に割り当てられているが、イマイチ右に答えるなっている。..

phrase_words = ['red car', 'no lake', 'newjersey turnpike'] 

lines = ['i have a red car which i drove on newjersey', 'turnpike. when i took exit 39 there was no', 'lake. i drove my car on muddy roads which turned my red', 'car into brown. driving on newjersey turnpike can be confusing.'] 

dict = {'red car': 0, 'newjersery turnpike': 0, 'no lake': 0} 
+2

を負うものではありませんか?また、これは宿題のように聞こえ、それがそうであればタグ付けされるべきです。 –

+1

'str.count()'(http://docs.python.org/library/stdtypes.html#str.count) – tMC

+0

tmc..pls最後の香りを読みました..私はそれを試しました。私は迷子になっています。 – Zenvega

答えて

-1

あなただけを見て、入門している場合Python Tutorialにあります。これは、Pythonをすぐに学びたいだけのプログラミング経験者の方々のための良い読書です。

0

些細な方法で、テストしたが、動作するはずはない、あなたがこれまでに試みているものを何の交差ラインの単語

f = open('keys.txt','r') 
lines = f.readlines() 
keys = [] 
for line in lines: 
    keys.extend(line.split()) 
f.close() 

dict = {} 
for key in keys: 
    dict[key]=0  

f = open('target.txt','r') 
lines = f.readlines() 
for line in lines: 
    l = line.split() 
    for w in l: 
     try: 
      dict[w] += 1 
     except KeyError: 
      pass 
f.close() 
+0

申し訳ありません。これは、期待される答えを与えていない...試してくれてありがとう! – Zenvega

+1

20行ファイル内の文字列を数えるためのPythonコード? – utdemir

+0

@ted XU:ここに投稿した内容に基づいて質問を編集しました。私はどこに間違っているのか教えていただけますか? – Zenvega

1
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
[GCC 4.5.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> teststr = '''I have a red car which I drove on newjersey 
... turnpike. When I took exit 39 there was no 
... lake. I drove my car on muddy roads which turned my red 
... car into brown. Driving on Newjersey turnpike can be confusing. 
... ''' 
>>> teststr.count('Newjersey turnpike') 
1 
>>> 
+0

2番目は 'red \ ncar'なので、これは赤い車に1を与えます。たぶん: '" ".join(teststr.splitlines())。count' – utdemir

+0

改行を無視したい場合は、すべてのスペースを変換してから数えてください。キャリッジリターンも文字です! – tMC

+0

@utdemir:上記の私の編集した質問を見て、どこに間違っているのか教えていただけますか? – Zenvega

1
>>> phrase_words 
['red car', 'no lake', 'newjersey turnpike'] 
>>> lines 
['i have a red car which i drove on newjersey', 'turnpike. when i took exit 39 there was no', 'lake. i drove my car on muddy roads which turned my red', 'car into brown. driving on newjersey turnpike can be confusing.'] 
>>> text = " ".join(lines) #join them in a str. 
>>> {phrase: text.count(phrase) for phrase in phrase_words} 
{'newjersey turnpike': 2, 'red car': 2, 'no lake': 1} 
関連する問題