У меня очень странная проблема в созданной мной функции, которая ищет слова в категориях и удаляет эту категорию, если слово не находится внутри нее. И по некоторым очень загадочным причинам я всегда получаю ошибку:
list index out of range
Я понимаю, что означает эта ошибка, но я не могу понять, почему.
Мой код следующий:
def check_cat(input, list_of_words, categories):
"""if a word is not in the possible set of words of a class, cannot be in this class"""
possible_cat = list_of_words
categories_copy = categories
for j in range(len(list_of_words)):
for i in input:
if i not in list_of_words[j][:,1]:
possible_cat.pop(j)
categories_copy = np.delete(categories_copy,j)
else:
pass
, где categories = array(['culture', 'politics', 'sports'], dtype='|S8')
и
list_of_words =
[array([['0.14285714285714285', 'ball'],
['0.2857142857142857', 'cart'],
['0.14285714285714285', 'drama'],
['0.14285714285714285', 'opera'],
['0.2857142857142857', 'theater']], dtype='|S32'),
array([['0.25', 'decision'],
['0.5', 'drama'],
['0.25', 'strategy']], dtype='|S32'),
array([['0.2857142857142857', 'ball'],
['0.14285714285714285', 'cart'],
['0.2857142857142857', 'goal'],
['0.14285714285714285', 'player'],
['0.14285714285714285', 'strategy']], dtype='|S32')]
Я действительно не понимаю, что когда я выполняю код «вне» функции / без функции, она работает. Но через функцию я получаю ошибку:
File "<ipython-input-110-b499e8f5d937>", line 7, in check_cat
if i not in list_of_words[j][:,1]:
IndexError: list index out of range
Мне кажется, что индекс j находится в диапазоне list_of_words, потому что я зацикливаюсь внутри него ... Любая помощь будет чрезвычайно признательна.