문자열로 이루어진 리스트가 주어졌을 때, 그중 가장 긴 단어의 길이를 구해야 하는 경우가 자주 있습니다. 이럴 때는 리스트를 순회하면서 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은 각 요소를 길이 기준으로 비교하라는 의미이므로, 별도의 반복문 없이 가장 긴 단어를 바로 찾을 수 있습니다. 코드가 짧아지고 가독성도 좋아지기 때문에 실무에서는 이 방식이 더 널리 사용됩니다.