И словарь, и наборы реализованы как хеш-таблицы в Python и имеют время вставки и время поиска O (1).Я пишу программу для подсчета, если строка состоит из всех уникальных символов, и я использую набор для отслеживания всех символов, увиденных до сих пор.Что я наблюдаю, так это то, что если я использую словарь вместо набора, общее время выполнения программы немного быстрее.Может ли кто-нибудь объяснить мне причину этого?
Код с помощью словаря:
def TestUniqueCharacters(characters):
chars = {}
for character in characters:
if character not in chars:
chars[character] = 1
else:
return False
return True
for i in range(30000000):
TestUniqueCharacters("qwertyuiopasdfghjklzxcvbnm1234567890-=[];',.!@#$%^&*()")
Код с использованием набора
def TestUniqueCharacters(characters):
chars = set()
for character in characters:
if character not in chars:
chars.add(character)
else:
return False
return True
for i in range(30000000):
TestUniqueCharacters("qwertyuiopasdfghjklzxcvbnm1234567890-=[];',.!@#$%^&*()")
Время выполнения со словарем

Время выполнения с набором
