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 문자열 메서드
