Я тут вдруг про тебя вспомнил.
А ты знаешь, что при итерации списка ВСЕГДА создаётся генератор по этому списку?
Сделает следующее:
1. Создаст генератор i for i in x if not i.startswith('x')
>>> timeit("' '.join(w for w in 'My home is danger because my dog is monster'.split() if not w.startswith(('m', 'M')))")
2.534423131000011
>>> timeit("' '.join([w for w in 'My home is danger because my dog is monster'.split() if not w.startswith(('m', 'M'))])")
2.251883082000006
"ДАЖЕ если у ТС не получится"?! Серьезно?
для начала не плохо этому человеку иметь общее понимание предметной области, прежде чем браться что-то делать.
С чего надо начинать? Какие литературы надо прочитать?