Алан Гибизов, я этого в коде не вижу? Он построчно открывает текстовый список файлов. А в верхнем фрагменте изображения он открывает только через Image.open(filepath).
Хэш найдёт идентичные побайтово файлы.
Могут быть различия в метаданных (у JPEG и PNG они есть), а могут быть и просто near-duplicates, которые отличаются незначительно. Автор не удосужился описать задачу, конечно.
Сеть рекуррентная? Или обычная? И почему это нарезать двумерный массив - нерационально? При нормальной реализации массива (а не через списки) разницы нет, так как порядок элементов в памяти один и тот же.
Doplis01, перечитай мой ответ. Я не спрашиваю, зачем тебе поле acc_id. Я спрашиваю, зачем тебе поле id, если у тебя уже есть acc_id, которое наверняка будет уникальным?
RimMirK, у enumerate() есть второй параметр - с какого числа начинать нумерацию. По умолчанию это 0, но его можно задать на любое число. В данном случае это позволило избавиться от i+1.
А насчёт join() - он эффективнее чем конкатенация множества строк, так как конкатенация выполняется попарно, и каждый раз выделяет память для копирования строк. join() выделяет память один раз, сразу по нужному размеру.
RimMirK, ну это уже другой вопрос. Тут я помочь не могу, надо пинать автора библиотеки на гитхабе.
Единственное, я бы ещё проверил работу через прокси/впн, на всякий.
Michael_Catlink, конечно. Возможно, придётся хранить чуть больше чем значение answer - например, если ты хочешь периодически удалять из словаря данные пользователей, которые слишком давно не пользовались ботом. Но идея остаётся прежней.
Другой вопрос, зачем калькулятору вообще что-то хранить... =)
p1ugg, а, ну тогда лучше внутри бота сделать или команду перезагрузки дат, или просто их периодическую загрузку. В зависимости от фреймворка для бота, можно использовать либо schedule+threading либо aioschedule.
1. "При выводе сообщения тг бот прикрепляет приветственное сообщение первого в списке"
Велика могуча руский языка. Ещё раз, что-что бот делает?
2. Найди по тексту место, где выполняется это действие, и удали соответствующий вызов, не?