В Python (3.7 и выше) я хотел бы получить ссылку на dict ключ . Точнее, пусть d
будет диктовкой, в которой ключи являются строками. В следующем коде значение k
потенциально сохраняется в двух разных местах в памяти (на одно указывает dict, а на другое - k
), тогда как значение v
хранится только в одном месте (указанном dict).
# d is a dict
# k is a string dynamically constructed, in particular not from iterating over d's keys
if k in d:
v = d[k]
# Now store k and v in other data structures
В моем случае dict очень большой, а строковые ключи очень длинные. Чтобы уменьшить использование памяти, я хотел бы заменить k
указателем на соответствующую строку, используемую d
, перед сохранением k
в других структурах данных. Есть ли простой способ сделать это, используя ключи dict в качестве пула строк?
( Footnote: это может показаться преждевременной оптимизацией, и, возможно, это так, но будучи программистом старой школы C, я лучше сплю по ночам, выполняя «трюки с памятью». Шутка в сторону, я искренне хотел бы узнать ответ из любопытства, и я действительно собираюсь запустить свой код на Raspberry Pi и вероятно столкнется с проблемами памяти.)