Почему я получаю «IndexError: список индекса вне диапазона»? - PullRequest
0 голосов
/ 09 декабря 2018

Я знаю, что для этой ошибки есть много тем, но я изучил многие из них и до сих пор не могу понять.Мне удалось проанализировать данные из (странного форматирования) json в python следующим образом:

data = ....all my json data

Вся идея в том, что у меня есть 6 блоков по 72 испытания в каждом.Я хочу разделить их на три списка.1 и 2 блоки идут в первом списке, 3 и 4 - во второй список, а 5 и 6 - в третий.Все блоки равны 7 в json, поэтому я начинаю цикл for с 1. Это мой код после импортирования всех моих данных в вышеуказанную переменную:

    high_trials=[]
    medium_trials=[]
    low_trials=[]

for i in range(0,len(data)-1): #parse all the participant's experiment json objects

    blocks = data[i].get("json").get("blocks")  #parse each experiments "blocks" json object

    for j in range(1, len(blocks)-1):   #6 blocks (7 blocks expept block 0 which is the training block and it should be excluded)

        for k in range(0,71):     #72 trials each block
            if (j<=2):
                high_trials.append(blocks[j][k])  #gather all the HIGH contigency trials of this block
            elif (j<=4):
                medium_trials.append(blocks[j][k])  #gather all the MEDIUM contigency trials of this block
            else:
                low_trials.append(blocks[j][k]) #gather all the LOW contigency trials of this block

high_trials и medium_trials работают как шарм.Они собирают все испытания, которые я хочу.По какой-то причине при i = 5 и j = 5 и k = 65 я получаю эту ошибку:

 Traceback (most recent call last):
   File "C:\Users\user\Desktop\res-cog-exp.py", line 75285, in <module>
low_trials.append(blocks[j][k])
IndexError: list index out of range

Мне интересно, если это проблема моих огромных данных.Я нашел эти данные и, кажется, правильно, но опять же, почему ошибка об индексе вне диапазона?Это список верно?Так почему же остальные 2 списка работают?Есть ли проблема в моей памяти?Я так не думаю.Вероятно, это проблема по логике?как я, J и K индексы?Я не мог понять.

Спасибо всем за помощь :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...