У меня есть база данных SQLite, в которую я читаю данные с использованием Python. Я подключаюсь к базе данных, а затем сохраняю весь столбец комментариев в список с именем output. Каждая запись в списке является строкой, я хочу выделить записи в списке, которые содержат только строку «[удалено]».
Для этого я использую цикл для индексации в списке, а затем для каждой точки сравниваю строку с индексом i со строкой «[удалено]», если строка «[удалено]», она должна установить соответствующее значение 1 по индексу i в векторе нулей называется удаленным флагом. Код, который я использую ниже:
deletedFlag = np.zeros((len(output),1))
for i in range(0,len(output)):
if (output[i] == "[deleted]"):
deletedFlag[i] = 1
Проблема в том, что output [i] == '[удалено]' никогда не возвращает true и поэтому никогда не устанавливает соответствующий удаленный флаг [i] = 1
Дальнейшее расследование и распечатка вывода [i] на консоль для значения i, которое, как я знаю, содержит строку [удалено], возвращает строку, немного отличающуюся от ожидаемой:
>> print(output[3])
>> ('[deleted]',)
Однако даже если я изменю свое сравнение строк так, чтобы оно совпадало с напечатанным значением, я все равно получу такое же поведение вектора удаленного флага, оставшегося во всех нулях:
deletedFlag = np.zeros((len(output),1))
for i in range(0,len(output)):
if (output[i] == "('[deleted]',)"):
deletedFlag[i] = 1
При просмотре первых четырех записей базы данных с использованием DB Browser показано следующее, взятое со скриншота, и это строка 4 колонки комментариев, которую я пытаюсь определить:

Я предполагаю, что я просто неправильно сравниваю строки, но я не могу понять, как это должно быть, и я попробовал большинство перестановок скобок и кавычек, которые только можно себе представить. Я понимаю, что это, вероятно, действительно основная проблема, но любая помощь будет принята с благодарностью!