b_set = frozenset(b) # переделываем список b в неизменяемое множество
result = {
key: value # генерируем словарь
for key, value in a.items() # на основании пар key-value словаря a
if not b_set.isdisjoint(value) # берём только те пары, в value которых есть элементы из b_set
}
index = random.randrange(0, len(lines))
random_line = lines[index]
, но и возможность сделать del lines[index]
чтобы удалить эту строку. Однако удаление произойдёт только в твоём списке в памяти - тебе нужно будет записать список обратно. Открываешь файл для записи в текстовом режиме, и используешь метод writelines(). async def main():
logging.basicConfig(level=logging.INFO)
async with ClientSession() as session: # сессию лучше по сто раз не создавать
check_task = asyncio.create_task(check_loop(session)) # создай её однажды и передай в check_loop
try:
bot = Bot(
token='"'
)
await dp.start_polling(bot)
finally:
check_task.cancel() # внутри check_loop() сгенерируется прерывание asyncio.CancelledError
@router.message(F.text == 'Каталог')
async def catalog(message : Message):
categories_kb = InlineKeyboardBuilder()
categories = db.get_group_name_from_db()
for category in categories:
categories_kb.add(InlineKeyboardButton(text=categories, callback_data=f'category_')) # чему-чему равен text?
return categories_kb.adjust(2).as_markup() # ты же понимаешь, что строка ниже не выпонится?
await message.answer('Выберите категорию товара:', reply_markup=await categories) # что ещё за await? categories - это список.
# или ты имел ввиду categories_kb?
SELECT * FROM Numbers ORDER BY ABS(num - заданное_число) ASC LIMIT 1