Не могу присвоить значение переменной по индексу, постоянно выдает ошибку. IndexError: list index out of range

import csv

k = ['ВС','07.11.2021 14:00','Россия,Премьер-лига',',','Урал - Зенит Санкт-Петербург','12.75','5.95','1.285','2.30','1.69','2.15']

d = ['Урал - Зенит Санкт-Петербург''0:0','0:0']

print(d)
day = ''
date = ''
strana = ''
championat = ''
items = ''
items_1 = ''
comands = ''
p1 = ''
x = ''
p2 = ''
tm = ''
tb = ''
oz = ''
comands2 = ''
for i in k:
    day = i[0]
    date = i[1]
    strana = i[2]
    championat = i[3]
    comands = i[4]
    p1 = i[5]
    x = i[6]
    p2 = i[9]
    tm = i[10]
    tb = i[11]
    oz = i[11]
    intejea = []
    for i in d:
        comands2 = i[0]
        items = i[1]
        items_1 = i[2]
        if comands == comands2:
            intejea = [{
            'day': day,
            'date': date,
            'strana': strana,
            'championat': championat,
            'items': items,
            'items_1': items_1,
            'comands': comands,
            'p1': p1,
            'x': x,
            'p2': p2,
            'tm': tm,
            'tb': tb,
            'oz': oz,
            }]
            print(intejea)
            with open('готовый результат', 'a', newline='', encoding='utf-8')as file:
                writer = csv.writer(file, delimiter=';')
                for i in intejea:
                    writer.writerow(введите сюда код
                        [i['day'], i['date'], i['strana'],
                         i['championat'], i['items'], i['items_1'],
                         i['comands'], i['p1'], i['x'],
                         i['p2'], i['tm'], i['tb'], i['oz']])

Ответы (1 шт):

Автор решения: CrazyElf

Раз вы перебираете k в цикле, используйте не просто список, а список списков:

k = [['ВС','07.11.2021 14:00','Россия,Премьер-лига',',','Урал - Зенит Санкт-Петербург','12.75','5.95','1.285','2.30','1.69','2.15']]

Далее, в k всего 11 элементов, обращение к индексу [11] вызовет ошибку, поскольку нумерация идёт с нуля и допустимы индексы от 0 до 10, разберитесь с нумерацией полей:

    tb = i[11]
    oz = i[11]

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

    day, date, strana, championat, comands, p1, x, _, _, p2, tm, tb, oz = i

Если какие-то поля нужно пропустить, используйте для этого переменную со специальным названием _.

→ Ссылка