2015-07-20 2 views
0

работает над алгоритмом, который обрабатывает 6 карт из стандартной колоды и сравнивает комбинации сделок с целевым прайм-кодом. Ошибки кода возникают из-за индексации массива Permutation «Результат». Есть предложения?Индексирование многомерных массивов

import random 
cards=[1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9, 
10,11,,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13] 

deal=[0,0,0,0,0,0] 

for i in range(0,6): 
    deal[i]=cards.pop(random.randint(0,len(cards)-1)) 
    print(deal) 
Result = [[0 for x in range(3)] for x in range(256)] 

Result[0][0]= deal[0]+deal[1] 
Result[0][1]= deal[0]-deal[1] 
Result[0][2]= deal[0]*deal[1] 
Result[0][3]= deal[0]/deal[1] 



for i in range(2,5): 
    for j in range(2^(2*j),256): 
        Result[0][j]= Result[0][j]+deal[i] 
        Result[1][j]= Result[0][j]-deal[i] 
        Result[2][j]= Result[0][j]*deal[i] 
        Result[3][j]= Result[0][j]/deal[i] 
        print(Result) 

Сообщение об ошибке: Traceback (самый последний вызов последнего): Файл "C: /Users/xxx/Desktop/Dealhit.py", строка 16, в Результат [0] [3] = сделка [0]/сделка [1]

IndexError: индекс индекса за пределами допустимого диапазона. Какой из них создает массив [4x1024], в основном пустых значений.

+0

Просьба заполнить полное сообщение об ошибке. – rohanp

+0

Возможно, вы имеете в виду 'len (Результат) - 1'? –

+0

Да, все еще привыкший к синтаксису –

ответ

1
for j in range(len(Result-1)): 

Должно быть

for j in range(len(result)-1): 

В противном случае (result - 1) будет exucuted перед тем len(result). В результате в TypeError: unsupported operand type(s) for -: 'list' and 'int'

0

Поскольку i в range(5), i может принимать значение 4, который, добавляют к 2, дает 6, которая находится вне границ deal.

я бы рекомендовал заменить

range(5) 

по

range(len(deal) - 2) 

Вы будете иметь еще одну проблему после того, когда вы пытаетесь присвоить Result[1][j], потому что Result содержит только один элемент. Вам нужно либо создать полную 2d-матрицу нужного размера, либо добавить элементы динамически.

Смежные вопросы