Python len() 함수: 문자열의 길이를 찾는 방법

⚡ 스마트 요약

Python len()은 문자열의 문자 수나 리스트, 튜플, 딕셔너리, 세트의 요소 수와 같은 객체에 있는 항목의 개수를 반환하는 내장 함수입니다.

  • 🔢 구문 : len(object)는 하나의 인수를 받아 해당 객체에 포함된 요소의 총 개수인 정수를 반환합니다.
  • 🔠 문자열 : 문자열의 경우, len() 함수는 공백, 숫자 및 구두점을 포함하여 모든 문자를 계산합니다.
  • 📦 컬렉션 : len() 함수는 리스트, 튜플, 딕셔너리, 세트 및 범위 객체의 크기를 동일한 방식으로 측정합니다.
  • ⚙️ 성능 : len() 함수는 상수 O(1) 시간 안에 실행됩니다. Python 각 객체의 길이를 속성으로 저장합니다.
  • 🚫 유형오류: 정수 또는 None 유형에 대해 len()을 호출하면 해당 유형에는 길이가 없으므로 TypeError가 발생합니다.
  • 🤖 AI 지원: AI 코딩 도우미는 len() 검사를 생성하고, 머신 러닝 파이프라인은 len()을 사용하여 시퀀스를 채우고 배치합니다.

Python len() 함수

무엇인가 Python len() 함수인가요?

The len () 이 함수는 내장 함수입니다. Pythonlen() 함수를 사용하면 주어진 문자열, 배열, 리스트, 튜플, 딕셔너리 및 기타 객체의 길이를 구할 수 있습니다. 요소 개수가 매번 다시 계산되는 것이 아니라 객체에 저장되기 때문에 len() 함수는 크기를 빠르게 확인하고 프로그램 성능을 최적화하는 데 도움이 됩니다.

구문 Python len() 함수

The Python len() 함수는 다음과 같은 구문을 사용합니다.

len(value)

파라미터

값 : 길이를 측정하려는 객체(예: 문자열, 리스트, 튜플, 딕셔너리 또는 세트)를 입력합니다.

반환 값

len() 함수는 정수를 반환합니다. 즉, 문자열의 문자 수 또는 배열, 리스트, 컬렉션의 요소 수를 나타냅니다. 반환 값의 정확한 의미는 함수에 전달된 객체의 유형에 따라 달라집니다.

  • 문자열 : len() 함수는 구두점, 공백 및 모든 종류의 특수 문자를 포함하여 문자열의 문자 수를 반환합니다.
  • 빈: 빈 문자열이나 빈 컬렉션은 요소가 없으므로 0을 반환합니다.
  • 컬렉션 : 내장 함수 len()은 컬렉션에 저장된 요소의 개수를 반환합니다.
  • 유형오류: len() 함수는 전달된 객체의 유형에 따라 달라집니다. 정수와 같이 길이가 없는 값을 전달하면 TypeError가 발생합니다.
  • 사전: 딕셔너리의 경우 각 키-값 쌍이 하나의 단위로 계산되므로 len()은 키의 개수를 반환합니다.

예 : Python len() 함수

다음 예제들은 len() 함수를 사용하여 다양한 숫자의 길이를 구하는 방법을 보여줍니다. Python 문자열, 리스트, 튜플, 딕셔너리, 배열을 포함한 객체들.

예제 1: 문자열의 길이를 구하는 방법

# testing len() 
str1 = "Welcome to  Guru99 Python Tutorials"
print("The length of the string  is :", len(str1))

출력:

The length of the string  is : 35

예제 2: 리스트의 길이를 찾는 방법

# to find the length of the list

list1 = ["Tim","Charlie","Tiffany","Robert"]

print("The length of the list is", len(list1))

출력:

The length of the list is 4

예제 3: 튜플의 길이를 구하는 방법

# to find the length of the tuple

Tup = ('Jan','feb','march')

print("The length of the tuple is", len(Tup))

출력:

The length of the tuple is 3

예제 4: 딕셔너리의 길이를 찾는 방법

# to find the length of the Dictionary

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}

print("The length of the Dictionary is", len(Dict))

출력:

The length of the Dictionary is 4

예제 5: 배열의 길이를 구하는 방법

# to find the length of the array

arr1 = ['Tim','Charlie','Tiffany','Robert']

print("The length of the Array is", len(arr1))

출력:

The length of the Array is 4

len() 함수를 사용하지 않고 문자열의 길이를 찾는 방법 Python

len() 함수는 문자열의 길이를 측정하는 가장 빠르고 가독성이 좋은 방법이지만, 수동으로 문자를 세는 방법도 있습니다. 이는 코딩 면접에서 흔히 나오는 문제이며, 모든 방법은 단순히 문자열을 순회하면서 카운터를 증가시키는 방식으로 작동합니다.

가장 일반적인 접근 방식은 for 루프를 사용하는 것입니다.

# length of a string without len()
mystr = "Guru99"
count = 0
for char in mystr:
    count += 1
print("The length is", count)

출력:

The length is 6

더 간단한 방법은 sum() 함수와 제너레이터 표현식을 사용하여 문자열의 각 문자마다 1을 더하는 것입니다.

mystr = "Guru99"
length = sum(1 for char in mystr)
print("The length is", length)

출력:

The length is 6

len() 함수를 사용하지 않고 문자를 세는 다른 방법은 다음과 같습니다.

  • 문자열이 비어있을 때까지 문자열을 순차적으로 잘라내는 while 루프이며, 매번 반복할 때마다 카운터를 증가시킵니다.
  • enumerate() 함수는 tracks는 반복하면서 각 문자의 인덱스를 저장합니다.
  • 남은 부분 문자열의 길이에 1을 더한 값을 반환하는 재귀 함수입니다.

이러한 수동 계산 방법은 내장 함수 len()보다 느리므로 학습이나 면접 연습용으로만 사용하세요. 일상적인 코드 작성에서는 len()이 여전히 가장 빠르고 명확한 옵션입니다.

어떻게해야합니까? Python len() 함수는 내부적으로 어떻게 작동하나요?

len() 함수의 작동 방식을 이해하면 왜 그렇게 빠른지 알 수 있습니다. 객체에 len() 함수를 호출하면, Python 모든 요소를 ​​하나씩 스캔하지 않습니다. 대신 객체의 특수 메서드인 __len__()을 호출합니다. 즉, len(x)는 x.__len__()과 동일합니다.

문자열, 리스트, 튜플, 딕셔너리, 세트와 같은 내장 컨테이너는 자체 크기를 속성으로 저장합니다. 요소를 추가하거나 제거할 때마다, Python 저장된 카운트 값을 업데이트합니다. len() 함수가 호출되면, 미리 저장된 값을 읽어서 반환합니다.

길이가 이미 알려져 있으므로 len() 함수는 상수 시간(O(1)) 내에 실행됩니다. 객체에 5개의 항목이 있든 500만 개의 항목이 있든 동일한 시간이 소요됩니다. 또한 정수를 반환하는 __len__() 메서드를 정의하여 클래스에 len() 지원을 추가할 수 있습니다.

class Team:
    def __len__(self):
        return 11

squad = Team()
print(len(squad))

출력:

11

이러한 설계 덕분에 len() 함수는 모든 내장 타입은 물론 __len__() 메서드를 구현하는 모든 사용자 정의 객체에서도 일관되게 동작합니다.

» 자세히 알아보기 Python 문자열 메서드

자주 묻는 질문

네. len() 함수는 공백, 탭, 숫자 및 구두점을 포함하여 문자열의 모든 문자를 계산합니다. 예를 들어, len(“Guru 99!”)는 공백과 느낌표가 각각 하나의 문자로 계산되므로 8을 반환합니다.

len() 함수는 빈 문자열의 경우 문자가 없으므로 0을 반환합니다. len() 함수는 0부터 시작하는 인덱스를 사용하지 않고 1부터 요소를 계산하므로 len("a")는 1을 반환하고 len("")는 0을 반환합니다.

정수는 여러 항목을 저장할 수 없으므로 길이가 없습니다. len(123)을 호출하면 "TypeError: object of type 'int' has no len()" 오류가 발생합니다. 숫자의 자릿수를 세려면 먼저 len(str(123))을 사용하여 숫자를 정수로 변환해야 합니다.

네. 딕셔너리의 경우, len() 함수는 키-값 쌍의 개수를 반환하며, 각 쌍은 한 번씩만 계산됩니다. 반면 세트의 경우, 중복된 값은 자동으로 제거되므로 len() 함수는 고유한 요소의 개수를 반환합니다.

len() 함수는 문자열에 포함된 유니코드 코드 포인트의 개수를 반환합니다. 따라서 대부분의 악센트가 있는 문자 및 기호는 하나로 계산됩니다. 하지만 일부 이모지와 결합 문자는 여러 개의 코드 포인트를 사용하므로 len() 함수는 이러한 문자에 대해 1보다 큰 값을 반환할 수 있습니다.

`len`을 `max()` 함수의 키로 전달하세요. `max(words, key=len)`은 리스트에서 가장 긴 문자열을 반환합니다. 마찬가지로 `min(words, key=len)`은 가장 짧은 문자열을 반환합니다. 이렇게 하면 각 문자열의 길이를 비교하는 반복문을 직접 작성할 필요가 없습니다.

머신러닝 파이프라인은 데이터셋 크기 확인, 특징과 레이블 일치 여부 확인, 시퀀스 길이 측정 등 다양한 용도로 len() 함수를 지속적으로 사용합니다. 모델은 데이터 배치들이 동일한 형태를 유지하도록 텍스트를 동일한 len() 길이로 채우거나 잘라내는 경우가 많습니다.

네. GitHub Copilot은 사용자의 목표를 설명하는 간단한 주석을 기반으로 len() 검사 및 카운팅 루프를 자동 완성해 줍니다. 에이전트형 AI 비서는 여기서 더 나아가 길이 유효성 검사 로직을 작성하고, TypeError에 대한 가드 절을 추가하며, 테스트까지 실행해 줍니다.

이 게시물을 요약하면 다음과 같습니다.