>>> timeit("' '.join(w for w in 'My home is danger because my dog is monster'.split() if not w.startswith(('m', 'M')))")
2.5913442222317826
>>> timeit("' '.join([w for w in 'My home is danger because my dog is monster'.split() if not w.startswith(('m', 'M'))])")
1.7360493094497542
>>> timeit("' '.join(filter(lambda w: w[0] not in ['M', 'm'], 'My home is danger because my dog is monster'.split()))")
1.630474044107193
>>> timeit("' '.join(filter(lambda w: not w.startswith(('M', 'm')), 'My home is danger because my dog is monster'.split()))")
2.3275212185005216
>>> timeit("' '.join([w for w in 'My home is danger because my dog is monster'.split() if not w.startswith(('m', 'M'))])")
1.7293634102704232