list, tuple
O(n)
set, dictionary
Average: O(1)
, Worst: O(n)
내부적으로 hash를 통해서 자료들을 저장하기 때문에 시간복잡도가 O(1)
가 가능하고 O(n)
의 경우에는 해시가 성능이 떨어졌을(충돌이 많은 경우) 때 발생합니다.
딕셔너리의 경우 키값이 있는지 확인하기 위해 In 사용할때 keys()함수를 사용하지 않돌고 조심해야한다. keys() 함수의 경우 딕셔너리의 키 값을 리스트로 반환하기 때문에 딕셔너리에 대한 In 연산 처럼 보이지만 실제로는 리스트에 대한 In 연산이다.
올바른 딕셔너리에 대한 In 연산
# 아래 코드와 동일하게 키가 있는지 확인할 수 있다.
if key in dictionary:
부적절한 딕셔너리에 대한 In 연산
if key in dictionary.keys():