У словарей есть ограничение на длину ключа?

Мне было интересно, имеет ли Python ограничение на длину словарного ключа.

Для пояснения я не говорю о количестве ключей, а о длине каждого отдельного ключа. Я собираюсь строить свои словари на основе динамических значений (после проверки), но я не уверен, что в этом случае я должен учитывать это.

Ответы

Ответ 1

Нет такого ограничения в отношении словарных клавиш. Поскольку python также имеет произвольную точность по числовым типам, единственным ограничением, с которым вы столкнетесь, строкой или иным образом, является доступная память. Вы можете увидеть другое сообщение здесь для обсуждения максимальной длины строки в python 2.

Ответ 2

Вот несколько примеров кода:

from string import ascii_letters
from random import choice

def make_str(length):
    return "".join(choice(ascii_letters) for i in range(length))

test_dict = {make_str(10000000): i for i in range(5)}

Заключение: Python вполне удачно использует строку размером 10 миллионов символов в качестве ключа dict.

Ответ 3

Как я знаю, нет ограничений, но считаю, что больше ключа длиннее, тем больше времени на создание/доступ к клавишам