2013-10-27 3 views
2

Я хочу передать матрицу функции (в качестве параметра), но появилась ошибка говоритпрохождение матрицы функций в Python

TypeError: list indices must be integers, not tuple 

вот мой код

def question_1_b(arr): 
    for i in range(4): 
     for j in range(4): 
      block[4*i+j] = arr[i,j] 
    return block 

question_1_b([[70,52,13,67],[90,48,57,26],[43,45,67,89],[88,65,44,23]]) 

ответ

0

Для решения вложенного списка , используют отдельные индексы для внешних и внутренних списков:

block[4*i+j] = arr[i][j] 

i, j форму кортеж (запятая ма кеш это кортеж, а не круглые скобки).

Вы могли бы просто цикл непосредственно над списками матричных, используя enumerate() function для создания индексов для расчета индекса block:

for i, outer in enumerate(arr): 
    for j, value in enumerate(outer): 
     block[4 * i + j] = value 
Смежные вопросы