Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 단어 목록에서 가장 긴 단어의 길이 구하기

문자열로 이루어진 리스트가 주어졌을 때, 그중 가장 긴 단어의 길이를 구해야 하는 경우가 자주 있습니다. 이럴 때는 리스트를 순회하면서 len 메서드를 사용해 각 문자열의 길이를 하나씩 확인하는 함수를 정의하면 손쉽게 해결할 수 있습니다.

아래는 그 구현 예시입니다.

예제 코드

def longest_length_string(my_string):
   len_str = len(my_string[0])
   temp_val = my_string[0]

   for i in my_string:
      if(len(i) > len_str):

         len_str = len(i)
         temp_val = i

   print("The word with the longest length is:", temp_val, " and length is ", len_str)

my_string = ["three", "Jane", "quick", "lesson", 'London', 'newyork']
print("The list is :")
print(my_string)
print("The method to find the longest string in the list is called")
longest_length_string(my_string)

실행 결과

The list is :
['three', 'Jane', 'quick', 'lesson', 'London', 'newyork']
The method to find the longest string in the list is called
The word with the longest length is: newyork and length is 7

코드 설명

  • longest_length_string이라는 이름의 함수를 정의합니다.

  • 이 함수는 문자열 리스트를 매개변수로 전달받습니다.

  • 리스트의 첫 번째 요소를 기준값으로 설정한 뒤, 리스트를 순회하면서 각 문자열의 길이를 비교합니다.

  • 현재까지 확인한 최대 길이보다 더 긴 문자열이 발견되면, 해당 길이와 문자열을 새로운 기준값으로 갱신합니다.

  • 순회가 끝나면 가장 긴 단어와 그 길이를 화면에 출력합니다.

  • 예제용 문자열 리스트를 정의하고 콘솔에 출력한 후, 해당 리스트를 인자로 넘기며 함수를 호출합니다.

  • 함수의 실행 결과가 콘솔에 표시됩니다.

더 간결한 대안: max() 함수 활용

위 방식 외에도 파이썬 내장 함수인 max()key 인자를 사용하면 한 줄로 같은 결과를 얻을 수 있습니다.

my_string = ["three", "Jane", "quick", "lesson", 'London', 'newyork']

longest_word = max(my_string, key=len)
print("가장 긴 단어:", longest_word)
print("길이:", len(longest_word))

key=len은 각 요소를 길이 기준으로 비교하라는 의미이므로, 별도의 반복문 없이 가장 긴 단어를 바로 찾을 수 있습니다. 코드가 짧아지고 가독성도 좋아지기 때문에 실무에서는 이 방식이 더 널리 사용됩니다.