Есть ли способ удалить все отредактированные сообщения до того, как вы удалите?

В моем боте я редактировал одно и то же сообщение примерно 3 раза. В конце концов, когда я хотел удалить последний, я думал, что он удалит все. Но он просто удалил последнее отредактированное сообщение.

Есть ли способ сделать это? Потому что я пытался использовать несколько delete_message, но оно сохранилось в последнем отредактированном сообщении...

Пример исполнения

1. "First Message" 2. "Second Message" (edited) 3. "Third Message" (edited) 4. "Forth Message" (edited)

ожидаемый

No messages

Фактический результат

"Third Message"

1 ответ

Вы можете просто удалить все сообщения, которые были edited:

Возможно, стартер:

test_list = ['1. First Message', '2. Second Message (edited)', 
             '3. Third Message (edited)', '4. Forth Message (edited)', 
             '5. Fifth Message (edited)']


for t in test_list[:]:
    print(t)
    if 'edited' in t:
        test_list.remove(t)    
print(test_list)

ВЫХОД:

['1. First Message']

однострочник с использованием лямбды:

print(list(filter(lambda a: a != '(edited)', test_list[:])))
Другие вопросы по тегам