Решено, спасибо всем за помощь! Мой код генерации массива ссылался на тот же массив, поэтому изменения будут применяться ко всем столбцам, а не к конкретным точкам.
Я делаюнесколько функций, которые я могу использовать в будущих программах на Python для работы с массивами, например, определение их и отображение.Однако я наткнулся на странную ошибку или сбой при попытке установить значения в порядке в массиве слева направо.По какой-то причине, когда программа устанавливает значения для последнего значения y (или фактически для любого значения), она устанавливает это значение для всего столбца вместо одного, хотя у меня только 2 цикла.Вот мой код:
def gen(xLen, yLen, fill = 0):
mainArr = list()
secArr = list()
for i in range(xLen):
secArr.append(fill)
for i in range(yLen):
mainArr.append(secArr)
return mainArr
def sums(xLen, yLen):
newArr = gen(xLen, yLen)
a = 0
for y in range(yLen):
for x in range(xLen):
newArr[y][x] = a
print(str(x) + ", " + str(y) + " = " + str(a)) #For debugging, what the array SHOULD contain
a += 1
return newArr
(просто запустите это с print(sums(5, 5))
)
Вместо возврата с [[0, 1, 2, 3, 4], ... [20, 21, 22, 23, 24]]
, он возвращается со списком, полным [20, 21, 22, 23, 24]
, и я действительно не понимаюНе знаю, почему.
Я не хочу добавлять новый список в другой список со значениями, уже содержащимися в них, например arr.append([0, 1, 2, 3, 4])
, поскольку массив уже создан.Почему это не работает ???Это беспокоило меня уже несколько недель!