在Python中初始化二维数组
在使用Python时,您可能会遇到初始化二维数组的需要,或“列表的列表”。虽然提供的代码片段利用嵌套循环完成任务,但它可能不是最有效的方法。
简化的初始化
一种更简洁的方法来初始化两个-维数组是通过列表理解实现的:
t = [[0] * 3 for i in range(3)]
此代码初始化一个 3x3 数组,所有元素设置为0.
注意事项
虽然看起来很方便,但使用 [[v] * n] * n 初始化数组可能会导致意外的行为。如下面的代码所示,这种方法创建相同列表引用的副本,从而导致引用在整个数组中共享:
a = [[0] * 3] * 3 a[0][0] = 1 print(a) # Output: [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
与预期不同,数组的所有元素都变为 1。这是因为每个sublist 保存对原始列表的引用,对一个元素的任何更改都会影响整个数组。
总而言之,在 Python 中初始化二维数组时,为了简单起见,请使用列表理解由于引用共享问题,请避免使用 [[v] * n] * n。
以上是如何在Python中高效初始化二维数组?的详细内容。更多信息请关注PHP中文网其他相关文章!