リスト内の初期化されていない要素をマークするためのダミー オブジェクトを作成する必要があります (明らかに、辞書の方が適していましたが、メモリの制約が大きいため、リストが必要です)。
この目的のために、次のプロパティを持つオブジェクトを使用することを考えています:
- それ自体以外の他のオブジェクトと等しいとは評価されません。
- それへの参照は、元の参照から (代入またはパラメーターの受け渡しによる) 以外に作成することはできません。
None
最初の要件は満たしますが、2 番目の要件は満たしません (literal を使用してプログラム内の任意の場所に作成できるためNone
)。
うまくいくはずのアプローチの1つは、次のとおりです。
UNINITIALIZED_VALUE = object() # will be compared for == through identity
a = [1, UNINITIALIZED_VALUE, 2, UNINITIALIZED_VALUE]
a[1] == a[3] # True
a[0] == UNINITIALIZED_VALUE # False
このアプローチで潜在的な問題を見逃していないことを再確認したかったのです。(私は Python 3 を使用しています。)