¿Imprimir palabras comienza con una letra en particular en python?

Cómo imprimir palabras a partir de una letra en particular en python sin usar funciones, pero usando métodos o bucles.

1) Tengo una cadena y quiero imprimir palabras que empiecen con ‘m’

St= "where is my mobile" 

result = “my”, “mobile”

2) Para la lista siguiente, cómo generar una lista que comience con “p”, que puede ser inferior o superior.

 List = ['mobile',"pencil","Pen","eraser","Book"] 

Gracias

Nb: Esto no es una tarea, solo un novato de Python

Utilice str.startswith

Ex:

 St= "where is my mobile" for i in St.split(): if i.startswith("m"): print(i) 

Salida:

 my mobile 

Usando filter

Ex:

 L = ['mobile',"pencil","Pen","eraser","Book"] print( list(filter(lambda x: x.lower().startswith("p"), L)) ) 

Salida:

 ['pencil', 'Pen'] 

Prueba este código:

 #String to be splitted St = 'where is my mobile' #Split the string on blank characters List = St.split() #for each element in the list, if it starts with 'm' then print it for s in List: if s.startswith('m'): print(s)