(Python) IndexError: список индексов вне диапазона - PullRequest
0 голосов
/ 01 мая 2020

Эта функция:

def assisted_by(self, players):
    text = self.event_text.split('Assisted')
    if len(text) > 1:
       print ([i for i in players if i in text[1]])
       return [i for i in players if i in text[1]][0]
    else:
       return 'N/A'

печатает сотни элементов и заканчивается пустым списком:

(...)

['Kelechi Iheanacho']
['James Maddison']
['Wilfried Zaha']
['Emiliano Buendia']
[]

Возвращает следующую ошибку:

  File "data_gathering.py", line 1057, in assisted_by
    return [i for i in players if i in text[1]][0]
IndexError: list index out of range

Как я могу исправить эту ошибку, не удаляя [0] index?

1 Ответ

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

Вы не можете получить элемент 0 из пустого списка. Вы можете проверить длину, прежде чем пытаться:

def assisted_by(self, players):
    text = self.event_text.split('Assisted')
    if len(text) > 1:
        data = [i for i in players if i in text[1]]
        print(data)
        if data:
            return data[0]
    return 'N/A'

~

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