파이썬에서 단어 목록(리스트) 중 가장 긴 단어의 길이를 반환해야 하는 경우가 자주 있습니다. 이때 리스트를 매개변수로 받는 함수를 정의하고, 각 요소의 길이를 비교하여 최대 길이를 찾아 결과로 출력하면 됩니다.
예제 코드
다음은 이를 구현한 예제입니다.
def find_longest_length(my_list):
max_length = len(my_list[0])
temp = my_list[0]
for element in my_list:
if(len(element) > max_length):
max_length = len(element)
temp = element
return max_length
my_list = ["ab", "abc", "abcd", "abcde"]
print("The list is :")
print(my_list)
print("The result is :")
print(find_longest_length(my_list))실행 결과
The list is : ['ab', 'abc', 'abcd', 'abcde'] The result is : 5
코드 설명
‘find_longest_length’라는 이름의 함수를 정의하고, 리스트를 매개변수로 전달받습니다.
리스트 첫 번째 요소의 길이를 최대 길이 변수(max_length)에 초기값으로 할당합니다.
리스트를 반복(iteration)하면서 각 요소의 길이가 현재 최대 길이보다 큰지 확인합니다.
더 긴 요소가 발견되면 해당 요소의 길이와 값으로 최대 길이를 갱신합니다.
반복이 끝나면 최종적으로 계산된 최대 길이를 반환합니다.
함수 외부에서 예제 리스트를 정의하고, 콘솔에 출력합니다.
필요한 매개변수를 넘겨 함수를 호출합니다.
결과값이 콘솔에 출력됩니다.
위 예제에서 리스트의 각 단어는 2글자부터 5글자까지 점점 길어지므로, 가장 긴 단어인 'abcde'의 길이인 5가 결과로 출력됩니다. 이 방식은 시간 복잡도 O(n)으로 리스트를 한 번만 순회하기 때문에 효율적이며, max() 함수와 key=len 옵션을 활용하면 len(max(my_list, key=len))처럼 한 줄로도 동일한 결과를 얻을 수 있습니다.