2011-09-13 4 views
-1

아래의 응답에 따라 편집 된 질문 :문자열 개수가

텍스트 파일에 문자열 목록이 있습니다. 다른 텍스트 파일에서 이러한 문자열의 발생을 계산하고 싶습니다.

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. 

내가 찾고 있어요 답 : 여기

내가 위에서 언급 한 문자열을 검색 할 텍스트 파일 I 파일 여기

Red Car 
No lake 
Newjersey turnpike 

에있는 문자열의 예입니다 is :

Newjersey turnpike 2 
No lake 1 
red car 2 

어떻게 이것을 파이썬으로 프로그래밍합니까? 도와 주셔서 정말로 고맙습니다!

당신이 막 시작하는 경우
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

, 봐 ..

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() 

문자열이 제대로 할당하지만, 밤은 바로 답을 얻고있다 : 여기

내가 지금까지 뭘하려 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 줄 파일의 문자열을 계산하는 파이썬 코드? – 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

두 번째가'red \ ncar'이므로 빨간 차에 1을줍니다. 어쩌면 : . "" ".join (teststr.splitlines()). 카운트' – 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} 
관련 문제