擅长:python、mysql、java
<p>可以通过将类更改为使用工厂函数而不是填充值来解决此问题。但是如果您想直接进行2D索引,而不直接在外部列表中设置任何内容,那么除了<code>__setitem__</code>之外,还需要使<code>__getitem__</code>扩展列表。这是因为<code>l[x][y]</code>在设置其中的第<code>y</code>索引之前,首先尝试获取{<cd4>}。在</p>
<p>一个更好的方法可能是使用带有<code>row, column</code>元组的键的字典。您可以使用<code>dict.get</code>来检查值并为缺少的键获取默认值。在</p>
<pre><code>l = {}
l[3, 5] = "x"
l[0, 0] = "y"
l[9, 9] = "z"
for i in range(10):
print("".join(l.get((i, j), ".") for j in range(10))) # "." is default value
</code></pre>
<p>打印:</p>
^{pr2}$