Функция счетчика в Python - внутри функции - PullRequest
0 голосов
/ 25 ноября 2018

В настоящее время у меня есть следующий массив 9x9:

m = np.zeros((9,9)) #9x9 grid of all zeros 
vals = np.arange(1,10) #set of values from 1 to 9 aranged randomly
for i in range(0,9):
    m[i,:] = np.random.choice(vals,size=9,replace=False) #randomly choses a set of 9 values for the row
print(m.astype(int)) #prints as integers

Используя это, я создал функцию nonet_1:

def nonet_1():
    for i in range(0,3):
        for j in range(0,3):
            print(m[i,j])
nonet_1()

Я хочу использовать аналогичную идею, как показано ниже, используя функцию Счетчик.

[r - 1 for r in Counter((m[:,i])).values()] #this line of code produces the scores based on n.o repeats in each column

Общая цель - подсчитать количество дублирований в этой сетке 3x3 в функции nonet_1.Есть ли простой способ, которым я могу собрать их вместе?

1 Ответ

0 голосов
/ 25 ноября 2018

Как насчет:

def nonet_1():
    number_of_times_any_value_duplicated = sum([i for i in Counter(m[:3,:3].flatten()).values() if i > 1])
    print (number_of_times_any_value_duplicated)
...