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

Python으로 문자열에서 특정 길이보다 긴 단어 찾기

문자열에서 특정 길이보다 긴 단어를 찾아야 하는 경우가 자주 있습니다. 이럴 때는 문자열을 공백을 기준으로 분리한 뒤 각 단어를 순회하면서, 단어의 길이를 주어진 길이와 비교하고 조건을 만족하는 단어만 결과로 반환하는 함수를 정의하면 됩니다.

예제 코드

아래는 위 로직을 구현한 전체 예제입니다.

def string_check(string_length, my_string):
    result_string = []
    words = my_string.split(" ")
    for x in words:
        if len(x) > string_length:
            result_string.append(x)
    return result_string

string_length = 3
my_string = "Python is always fun to learn"

print("The string is :")
print(my_string)
print("\nThe words in the string with length greater than", string_length, "is :")
print(string_check(string_length, my_string))

실행 결과

The string is :
Python is always fun to learn

The words in the string with length greater than 3 is :
['Python', 'always', 'learn']

코드 설명

  • string_check라는 이름의 함수를 정의하고, 기준 길이(string_length)와 대상 문자열(my_string)을 매개변수로 받습니다.

  • 조건에 맞는 단어를 담을 빈 리스트 result_string을 생성합니다.

  • split(" ") 메서드로 문자열을 공백을 기준으로 분리하여 변수에 저장합니다.

  • 분리된 단어들을 순회하면서 각 단어의 길이를 주어진 길이와 비교합니다.

  • 단어의 길이가 기준 길이보다 크면 append() 메서드로 결과 리스트에 추가합니다.

  • 모든 단어를 확인한 뒤 최종 결과 리스트를 반환합니다.

  • 함수 외부에서 기준 길이와 문자열을 정의하고, 원본 문자열을 콘솔에 출력합니다.

  • 마지막으로 함수를 호출하여 조건에 맞는 단어 목록을 화면에 표시합니다.

더 간결한 방법: 리스트 컴프리헨션

위 코드는 파이썬의 리스트 컴프리헨션(list comprehension)을 사용하면 한 줄로 더 간결하게 표현할 수 있습니다.

def string_check(string_length, my_string):
    return [word for word in my_string.split() if len(word) > string_length]

동작 방식은 동일하지만 코드가 짧고 가독성이 좋아 실무에서 더 널리 사용되는 패턴입니다. 또한 split()처럼 인자 없이 호출하면 공백이 여러 개 연속으로 포함된 문자열도 자동으로 올바르게 처리해 주므로 더 안전합니다.