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

Python의 'in' 연산자, 튜플에서는 어떻게 동작할까?

Python의 in 연산자는 리스트나 튜플과 같은 컬렉션의 모든 요소를 순회하면서, 주어진 항목과 일치하는 값이 그 안에 존재하는지 확인합니다. 검사 결과는 참(True) 또는 거짓(False)으로 반환됩니다.

튜플에서 in 연산자 사용하기

my_tuple = (5, 1, 8, 3, 7)
print(8 in my_tuple)
print(0 in my_tuple)

실행 결과

True
False

위 코드에서 8은 튜플 안에 존재하므로 True가 출력되고, 0은 존재하지 않으므로 False가 출력됩니다.

딕셔너리에서의 in 연산자

딕셔너리에 in 연산자를 사용할 때는 주의할 점이 있습니다. 딕셔너리에서는 값(value)이 아니라 키(key)의 존재 여부를 검사합니다.

예제

my_dict = {'name': 'TutorialsPoint', 'time': '15 years', 'location': 'India'}
print('name' in my_dict)

실행 결과

True

'name'이라는 키가 딕셔너리에 존재하므로 True가 출력됩니다.

문자열에서의 in 연산자

in 연산자는 문자열에 대해서도 사용할 수 있으며, 특정 부분 문자열(substring)이 포함되어 있는지 확인할 때 유용합니다.

예제

my_str = "This is a sample string"
print("sample" in my_str)

실행 결과

True

문자열에 "sample"이 포함되어 있으므로 True가 반환됩니다.

in 연산자의 내부 동작 원리

in 연산자는 다양한 곳에서 활용될 수 있으며, 사용되는 대상에 따라 동작 방식이 크게 달라집니다. 튜플의 경우, in 연산자는 첫 번째 요소부터 시작하여 객체의 참조(reference)를 하나씩 순서대로 비교합니다. 그리고 일치하는 객체를 찾으면 즉시 True를 반환하고, 끝까지 찾지 못하면 튜플의 마지막에 도달한 뒤 False를 반환합니다. 이러한 선형 탐색(linear search) 방식 때문에 튜플이나 리스트에서 in 연산자의 시간 복잡도는 O(n)입니다.