2016-09-26 2 views
0

텍스트 문서를 읽고 문서에서 가장 긴 단어를 출력하는 프로그램을 작성하려고합니다. 가장 긴 단어가 여러 개인 경우 (즉, 길이가 모두 같은 경우), 모두 동일한 순서로 출력해야합니다. 가장 긴 단어 개와 고양이 인 경우 예를 들어, 코드를 생성해야합니다텍스트 문서에서 최대 길이가 동일한 단어를 선택하는 방법

개 고양이

나는 문제가 동일한 최대 길이의 수많은 단어를 선택하고 인쇄하는 방법을 찾는 데. 당신이하는 것입니다해야 할 일은

fh = open('poem.txt', 'r') 

longestlist = [] 
longestword = '' 

for line in fh: 
    words = (line.strip().split(' ')) 
    for word in words: 
     word = ''.join(c for c in word if c.isalpha()) 
     if len(word) > (longestword): 
      longest.append(word) 

for i in longestlist: 
    print i 
+0

는'정수를 수 longestword'하지 않나요? 또한 더 긴 단어를 찾을 때마다 업데이트해야합니다. – afsafzal

+0

수표에 대해 생각해보십시오 : 길이가 동일하면이 단어를 긴 목록에 추가하십시오. 단어의 길이가 longestword의 길이보다 긴 경우 새 단어가 가장 길어서 이전 목록을 지우고 가장 긴 단어가 들어있는 새 목록을 만들어야합니다. –

답변

1

좋아, 먼저 withas 문을 사용해야하며, 단순화하고 실수하지 않도록하십시오. 그래서

fh = open('poem.txt', 'r')

with open('poem.txt','r') as file:

이되고 당신이 단어 단지 우려 때문에, 당신은뿐만 아니라 사용할 수있는 내장 처음부터 :

words = file.read().split() 

그런 다음 최대 단어 길이 (0으로 초기화 됨)의 카운터와 빈 목록을 설정하면됩니다. 단어가 최대 길이를 깨뜨린 경우 새로운 maxlength를 설정하고 해당 단어 만 포함하도록 목록을 다시 작성하십시오. 최대 길이와 같으면 목록에 포함하십시오. 그런 다음 목록 구성원을 인쇄하십시오. .isalpha()과 같은 일부 검사를 포함 시키려면 코드의 관련 부분에 자유롭게 입력하십시오.

maxlength = 0 
longestlist = [] 
for word in words: 
    if len(word) > maxlength: 
     maxlength = len(word) 
     longestlist = [word] 
    elif len(word) == maxlength: 
     longestlist.append(word) 
for item in longestlist: 
    print item 

-MLP

0

를 읽는

파일을 열 : 이것은 그냥 동일한 최대 길이 모든 단어를 선택하는 방법을 생각하기 위해 고군분투하고 지금까지 내가받은 것 같다 지금까지 본 모든 가장 긴 단어의 목록을 유지하고 가장 긴 길이를 유지하십시오. 예를 들어, 지금까지 가장 긴 단어의 길이가 5 인 경우 5 단어가 포함 된 모든 단어의 목록을 갖게됩니다. 6 자 이상으로 단어를 보자 마자 그 목록을 지우고 단어 하나만 넣고 가장 긴 길이를 업데이트합니다. 가장 긴 길이의 단어를 방문한 경우 목록에 추가해야합니다.

P. 당신이 직접 할 수 있도록 코드를 넣지 않았습니다.

관련 문제