Hola, suponiendo el siguiente diccionario:
diccionario = { 'carro_1':'renault', 'carro_2':'audi', 'carro_50':'sprint', 'camioneta':'tucson' }
Necesito algo que me pueda almacenar en una lista todas las claves que tengan el nombre de tipo: carro_X
siendo x
un número; es decir, debería arrojarme una lista que contenga:
lista=['carro_1','carro_2','carro_50']
Si alguien sabe cómo, se lo agradecería mucho.
Respuestas
Una forma muy elegante de conseguir lo que quieres sería utilizar el siguiente código:
diccionario = { 'carro_1': 'renault', 'carro_2':'audi', 'carro_50':'sprint', 'camioneta':'tucson' } lista = { clave for clave, valor in diccionario.items() if clave.startswith('carro_')} # print lista # set(['carro_1', 'carro_50', 'carro_2'])
Si quisieras obtener los valores en vez de las claves:
lista = { valor for clave, valor in diccionario.items() if clave.startswith('carro_')} # print lista # set(['sprint', 'renault', 'audi'])
Y si quisieras filtrar el diccionario original para crear otro diccionario sólo con los elementos que cumplan la condición indicada:
lista = { clave: valor for clave, valor in diccionario.items() if clave.startswith('carro_')} # print lista # {'carro_1': 'renault', 'carro_50': 'sprint', 'carro_2': 'audi'}
@javiereguiluz
5 octubre 2014, 19:40