Список вне диапазона во время функции разделения строки - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь получить значения из строки, разделенной с помощью aa specifici c index, но он отлично работает для индекса 0, когда я пытаюсь получить доступ к 1-му индексу, он выбрасывает индекс списка за пределы диапазона

for child in root:  
    for child1 in child: 
      if(child1.tag == "mxCell"): 
        id = child1.attrib['id'] 
        id_2 = child1.attrib['id'] 
        split_data = id.split('-')[0] + 'Z'

Я использую xml .etree, поскольку это XML файл

В приведенном выше коде, когда я пытаюсь получить доступ к 1-му индексу, он выдает ошибку. ie. split_data = id.split('-')[1] + 'Z' или когда я пытаюсь получить доступ к значению с помощью split_data_ = id.split('-') print(split_data_[1]), выдается ошибка

1 Ответ

0 голосов
/ 26 мая 2020

Эта ошибка означает, что не все элементы id содержат символы -. Если вы используете [-1] вместо [1], это безопасно захватит последний элемент в списке, даже если в списке есть только один элемент:

split_data = id.split('-')[-1] + 'Z'

Чтобы найти элемент (ы), вызывающий проблему вы можете сделать:

split_data = id.split('-')
try:
    item = id.split('-')[1] # try to access index 1
except:
    print(id) # print the offending item
    print(split_data) # see if it split correctly
...