2016-09-19 5 views
1

아래 코드는 특정 접두사/접미어로 시작/끝나는 단어를 제공합니다.목록/파일에서 특정 접두사/접미사로 시작하고 끝나는 모든 단어를 찾으십시오.

string_list = [line.strip() for line in open("file.txt", 'r')] 
for word in string_list: 
    if word[-1] == "a": 
     print word 


string_list = [line.strip() for line in open("file.txt", 'r')] 
for word in string_list: 
    if word[0] == "fi": 
     print word 

어떻게 거대한 데이터에서 실제로 빠르게 최적화 할 수 있습니까? 는 어떻게 사전에

python test.py --prefix fi 
python test.py --suffix o 

덕분에 같은 PARAM을 전달할 수 있습니다.

+0

는 [argparse] 봐 (https://docs.python.org/3/library/argparse.html을 가지고 ... 또한 휴대용 및 리눅스/윈도우/OSX /에 잘 실행) 매개 변수를 전달하는 경우 –

+2

대신 [codereview] (http://codereview.stackexchange.com)에 게시하시는 것이 좋습니다. –

+0

argparse뿐만 아니라 sys.argv []도 사용하는 방법? –

답변

2

word이 문자열 인 경우 word[0] == "fi"은 사용자가 생각하는대로 처리하지 않습니다.

대신 위해 다중 접미사와 접두사를 확인하기 위해 startswithendswith를 사용할 수 있습니다.

string_list = open("file.txt", 'r') 

for word in string_list: 
    if word.startswith("fi") or word.endswith('a'): 
     print word 

스크립트에 매개 변수로 접미사/접두사를 통과하려면, 당신은 속도를 필요로하는 경우, 당신은 단순히 저수준 언어로 작성 GREP를 사용할 수 argparse

+0

x = filter (lambda s : s.startswith ("fi"), string_list) –

+0

sys.argv []와 argparse를 어떻게 사용합니까? –

0

를 보라 도약과 경계에 의해 파이썬 루프보다 빠르다.

+0

grep은 빠를 수 있지만 py를 사용하여 충분히 빠르고 싶습니다. –

관련 문제