listで実装されたNodeに素早く到達する(Python)

に公開

こんにちは、沙代です。
Nodeのkeyとなる値が与えられた時、Nodeに素早く到達したいことってありますよね。そのための簡易な実装を示します。(使う人いるのかな?)

環境
MacOS: macOS Montery 12.6.2 (Apple M1 Pro)
iTerm2: 3.5.4
Python: 3.7.0

TL;DR

{key: Node}のような辞書を作成しておけばOKです。

詳しく

問題

[prev, next, key, content]のようなlistとして実装されたNodeを、
keyから取り出します。

解決策

Nodeのリストの他に、{key: Node}のようなdictを併せて作成しておけばOKです。

cache = dict()
()
a = [prev, next, key, content]
a[0][1] = a[1][0] = a
cache[key] = a
()
prev, next, _, content = cache[the_key]

最後に

容量に問題がなければ、便利かもですね!

参考ページ

Discussion