嵌套列表索引麻烦解决
在Python中,处理嵌套列表时,了解列表的传递方式至关重要,已知作为“参考传递”。通常,变量独立保存值(“按值传递”),但出于效率原因,列表按其内存地址传递(“按引用传递”)。
例如,如果您有 4 * [0] ,您在内存中创建了四个指向相同 0 值的指针。但是,如果您修改这些列表之一,则更改会传播到所有其他列表。这是因为它们都指向相同的底层内存位置。
在您的示例中,您有 4 [(4 [0])],这意味着您创建了内部的四个副本包含四个零的列表。当您在循环中修改 some_listi 1 时,您实际上修改了该内存位置处的基础列表,从而导致所有四个列表都受到影响。
要解决此问题,请避免第二次乘法并使用循环创建新列表列表列表:
<code class="python">some_list = [(4 * [0]) for _ in range(4)]</code>
通过这样做,您可以创建四个不同的列表,每个列表包含四个零,从而防止对多个列表进行意外修改。
以上是为什么 Python 中对一个嵌套列表的修改会影响其他列表?的详细内容。更多信息请关注PHP中文网其他相关文章!