У меня есть 2d массив, X
, который выглядит как этотПодсчет последовательных чисел во всех столбцах 2D массива
[0, 0, 0, 2, 1]
[1, 2, 1, 0, 1]
[2, 2, 1, 0, 0]
[0, 0, 1, 2, 0]
Я пытаюсь перебирать весь массив 2D, чтобы попытаться сосчитать все экземпляры где есть два последовательных элемента в столбце. Например. X
выше вернул бы 4 (X[1][1] == X[2][1] && X[1][2] == X[2][2] && X[2][2] == X[3][2]
и т. Д.)
Я нахожу это очень трудным для визуализации. До сих пор у меня есть:
def get_opposite(number):
if number == 2: return 1
if number == 1: return 2
def counter(X, number):
count = 0
for i in range(len(X)):
for j in range(len(X[i])-1):
if X[i][j] == X[i][j+1] and X[i][j] != 0 and X[i][j] != get_opposite(number):
count += 1
return count
Я продолжаю либо получать значительно неправильные результаты, или IndexError, он должен быть довольно прямо вперед, но я не уверен, что я делаю неправильно
Почему ваша функции счетчика нужна второй аргумент? Кажется неуместным прочитывать вопрос, который вы задаете ... – trincot