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

파이썬(Python) – 리스트 속 문자열 길이가 기대값과 일치하는지 검증하기

여러 개의 문자열이 담긴 리스트가 있을 때, 각 문자열의 길이가 기대하는 값과 정확히 일치하는지 검사해야 하는 경우가 종종 있습니다. 이럴 때는 간단한 반복문과 파이썬 내장 함수 len()만으로도 손쉽게 해결할 수 있습니다.

예제 코드

아래 예제를 통해 실제 동작 과정을 살펴보겠습니다.

my_list = ["python", 'is', 'fun', 'to', 'learn', 'Will', 'how']

print("The list is :")
print(my_list)
length_list = [6, 2, 3, 2, 5, 4, 3]

my_result = True
for index in range(len(my_list)):

    if len(my_list[index]) != length_list[index]:
        my_result = False
        break

print("The result is :")

if(my_result == True):
    print("All the strings are of required lengths")
else:
    print("All the strings are not of required lengths")

실행 결과

The list is :
['python', 'is', 'fun', 'to', 'learn', 'Will', 'how']
The result is :
All the strings are of required lengths

코드 설명

  • 검사 대상이 되는 문자열 리스트를 정의하고, 콘솔에 출력합니다.

  • 각 문자열이 가져야 할 길이를 담은 정수 리스트를 함께 정의합니다.

  • 최종 결과를 저장할 불린(Boolean) 변수를 True로 초기화합니다.

  • 문자열 리스트를 순회하면서, 해당 인덱스의 문자열 길이가 정수 리스트의 같은 인덱스 값과 다르면 불린 값을 False로 변경합니다.

  • 불일치가 발견되면 break 문으로 반복문을 즉시 탈출하여 불필요한 연산을 줄입니다.

  • 마지막으로 불린 값에 따라 알맞은 메시지를 콘솔에 출력합니다.

더 간결한 방법: all() 함수 활용

위 코드는 all() 함수와 제너레이터 표현식을 사용하면 한 줄로 압축할 수 있습니다.

my_result = all(len(s) == l for s, l in zip(my_list, length_list))
print("The result is :", my_result)

zip() 함수는 두 리스트의 요소를 하나씩 짝지어 주고, all() 함수는 모든 조건식이 참인지 검사합니다. 덕분에 별도의 임시 변수나 반복문 없이도 동일한 결과를 얻을 수 있어 코드가 훨씬 깔끔해집니다.