Separar elementos de una lista identificando un conjunto de letras

publicado por: Anonymous

en primer lugar disculparme por el título de la pregunta, que no es nada aclaratorio.

Tengo una lista con los nombre de varios archivos de una carpeta, del tipo: archivo1_A1, archivo1_A2, archivo2_A1, archvio2_A2, …

¿Cómo puedo crear dos listas de esta lista, una conteniendo todos los elementos terminados con _A1 y otra con todos los _A2?

Gracias!

solución

Si presuponemos que lo que tienes es una lista de cadenas de esta forma:

nombres = ['archivo1_A1', 'archivo1_A2', 'archivo2_A1', 'archvio2_A2']

Lo más simple es usar str.endswith:

lista_A1 = [nombre for nombre in nombres if nombre.endswith('_A1')] 
lista_A2 = [nombre for nombre in nombres if nombre.endswith('_A2')]

Si todos tus archivos terminan en ‘_A1’ o ‘_A2’ se podría hacer en un solo for.

Si necesitaras algo más complejo porque trabajaras con nombres de archivos con más complejidad, por ejemplo, con extensión (‘archivo1_A1.py’, ‘archivo1_A1.exe’, etc) lo mejor sería usar expresiones regulares.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *