IndexError: индекс назначения списка вне диапазона - python - PullRequest
0 голосов
/ 11 мая 2018

У меня проблема с моим кодом, я просто хочу записать результат в CSV, и я получил IndexError

seleksi = []
p = FeatureSelection(fiturs, docs)

seleksi[0] = p.select()
with open('test.csv','wb') as selection:
    selections = csv.writer(selection)
    for x in seleksi:
        selections.writerow(selections)

В p.select это:

['A',1]
['B',2]
['C',3]
etc

и я получил ошибку в:

seleksi[0] = p.select()
IndexError: list assignment index out of range

Process finished with exit code 1

что мне делать?

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Когда вы инициализируете список, используя

seleksi = []

Это пустой список.Длина списка равна 0. Следовательно,

seleksi[0] 

выдает ошибку.

Вам необходимо добавить в список, чтобы получить значения, что-то вроде

seleksi.append(p.select())

Если вы все еще хотите назначить его на основе индекса, инициализируйте его как массив нулей или какое-нибудь фиктивное значение

seleksi = [0]* n

См. Это: Список нулей в Python

0 голосов
/ 11 мая 2018

[], звонки __get(index) в фоновом режиме. когда вы говорите seleksi[0], вы пытаетесь получить значение с индексом 0 из seleksi, который является пустым списком.

Вы должны просто сделать:

seleksi = p.select()
0 голосов
/ 11 мая 2018

Вы получаете доступ перед присвоением на seleksi[0] = p.select(), это должно решить это:

seleksi.append(p.select())

Так как вы перебираете saleksi Я думаю, что вы действительно хотите сохранить p.select(), вывозможно, вместо этого потребуется seleksi = p.select().

РЕДАКТИРОВАТЬ:

я получил этот selections.writerow (выборы) _csv.Error: последовательность ожидается

вы хотите написать x, поэтому selections.writerow(x) - это путь.

Ваш окончательный код будет выглядеть так:

p = FeatureSelection(fiturs, docs)

seleksi = p.select()
with open('test.csv','wb') as selection:
    selections = csv.writer(selection)
    for x in seleksi:
        selections.writerow(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...