当2D列表的元素被赋予相同的值时,很可能是因为在创建2D列表时,没有正确地创建新的元素。以下是一种解决方法,可以确保每个元素都是独立的:
# 创建一个包含3行4列的2D列表,并将每个元素初始化为None
rows = 3
cols = 4
matrix = [[None] * cols for _ in range(rows)]
# 将每个元素赋予不同的值
value = 0
for i in range(rows):
for j in range(cols):
matrix[i][j] = value
value += 1
# 打印2D列表
for row in matrix:
print(row)
运行上述代码,将会得到以下输出:
[0, 1, 2, 3]
[4, 5, 6, 7]
[8, 9, 10, 11]
这样可以确保每个元素都被赋予了不同的值。关键在于使用列表生成式来创建新的元素,而不是简单地将一个列表复制多次。这样做可以确保每个元素都是独立的,而不是指向同一个对象。