2014-01-10 2 views
0

에 추가, 그래서 같은 것을 쓸 때 :파이썬 문자열은, 내가 문자열에서 가장 긴 단어를 찾을거야 배열

longestWord = {'value': '', 'len': 0} 
for word in words: 
    if len(word) > longestWord['len']: 
     longestWord['value'] = word 
     longestWord['len'] = len(longestWord['value']) 

sys.stdout.write(longestWord['value']) 

을 실제로 값을 변경하지 않지만, 그것을 추가 가장 긴 단어로 표시합니다. 추가하는 대신 문자열을 변경하는 방법?

+2

I을 틀린 것을 보지 마라. 당신 전체 코드인가? 그리고이 프로그램의 실제 결과는 무엇입니까? – aIKid

+1

당신이 설명하고있는 문제를 보여주는 짧은 프로그램 (당신이했던 것)과 완성 된 프로그램 (당신이하지 않은 프로그램)을 게시 해주십시오. , 디버그 등. –

+0

예, 입력 구분 기호에 문제가있었습니다. 감사합니다. – BlackenedSun

답변

3

난 당신이 무엇을 잘못 아무것도 볼 수 없지만, 한 행으로 줄일 수 :

print(max(words, key=len)) 

당신은 그 DICT 구조를 유지하려면 :

longest = max(words, key=len) 
longestWord = {'value': longest, 'len': len(longest)} 
+0

이렇게 짧은 접근 방식을 이용해 주셔서 감사합니다. 저는 초보자이며 파이썬에 익숙하며 아직 내장 알고리즘을 시도하지 않았습니다. – BlackenedSun

관련 문제