2014-04-09 1 views
0

나는 파일에서 단어를 읽고 내가 가지고있는 목록에 있는지 확인해야한다. 존재한다면 다른 단어로 바꾸어야한다. 예를파일에서 두 개의 목록을 함께 사용하는 방법은 무엇입니까?

내 첫 번째 목록 : IAS, IAS, IPS는 내 두 번째 목록은 WHO ... : 인도 행정 서비스, 인도 행정 서비스, 인도 경찰 서비스, 세계 보건기구 (WHO)는 ...

IAS 인 경우가 입력 파일에서 Indian Police 서비스로 출력 파일에 기록해야합니다. 지금은 간단한 if와 else 문을 사용했습니다. 그러나 그것을 할 수있는 다른 효율적인 방법이 있습니까? 두 개의 목록을 사용하고 파일에 쓸 수 있습니까? 단어와 해당 약어의 목록을 별도의 파일에 보관하고 처리 할 수 ​​있습니까?

IAS 인도 Administartive 서비스

WHO 세계 보건기구 (WHO)

이제 난 내 입력 파일에서 읽고 싶은 (INFILE) 및 검사 : 단어 및 약식 목록 (약식 파일)와

파일 이 "abbr"파일에 단어가 있으면 yes로 설정하고 다른 단어는 파일 자체 (outfile)로 다시 쓰십시오. 그런 다음 쉽게 사전, 예를 들어,에서 직접 약어를 대체 할 수

>>> acronyms = ["IAS", "I.A.S", "IPS", "WHO"] 
>>> expansions = ["Indian Administrative services", "Indian Administrative services", 
        "Indian Police Service", "World Health Organisation"] 
>>> map_ = dict(zip(acronyms, expansions)) 
>>> map_ 
{'I.A.S': 'Indian Administrative services', 'IAS': 'Indian Administrative services', 
'WHO': 'World Health Organisation', 'IPS': 'Indian Police Service'} 
>>> map_["IAS"] 
'Indian Administrative services' 

:

답변

1

가장 쉬운 방법은 두 개의 서로 매핑 사전을 만들 수 zip을 사용하는 것입니다 아주 간단한 예로서 :

for word in sentence: 
    if word in map_: 
     print map_[word] 
    else: 
     print word 

word in ... 검사가 훨씬 더 빨리 목록의 항목보다 사전 키입니다.

+0

잘 작동합니다 ... "단어 : abbr"과 같은 프로세스를 유지할 수 있습니까? – charvi

+0

단어와 abbr 목록은 매우 길기 때문에 단어 탭을 abbr 또는 word : abbr로 유지하면 처리가 더 쉬울 것입니다. 내가 그렇게 할 수 있을까 ?? – charvi

+0

@charvi 당신이 묻고있는 것이 명확하지 않습니다. 입력과 출력 예제를 제공하십시오. – jonrsharpe

관련 문제